沒(méi)怎么用過(guò)throw。用過(guò)try和catch。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供曲靖企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、做網(wǎng)站、H5建站、小程序制作等業(yè)務(wù)。10年已為曲靖眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
1.throw,等你程序比如檢測(cè)到一個(gè)非法的值,則可以寫代碼,專門throw,拋出這個(gè)異常(后期會(huì)有人捕獲并處理的)
2.
catch,我是和try一起用的。
即:
try{
做你要做的事情,
尤其是可能會(huì)出錯(cuò)的某些事情
比如通過(guò)網(wǎng)絡(luò)訪問(wèn)某個(gè)地址
則可能出現(xiàn)超時(shí)等情況,此時(shí)最好就是把相關(guān)代碼放到此try中
}
catch()
{
然后在catch中捕獲,處理對(duì)應(yīng)的異常
比如是超時(shí)的異常,就彈出個(gè)對(duì)話框,告訴用戶超時(shí)了,之類的
}
3.總之,把可能,容易出錯(cuò)的代碼,放到try中,
然后在catch中寫相關(guān)的錯(cuò)誤的處理的代碼。即可。
感興趣的話,用google搜:
crifanlib.cs
里面有我寫的各種函數(shù),其中有用到try和catch。
mport?java.util.Scanner;
public?class?MainTest?{
public?void?InputAdd()?{
int?num1?=?0;
int?num2?=?0;
try?{
System.out.println("請(qǐng)分別輸入兩個(gè)數(shù)字,回車?yán)^續(xù)。");
num1?=?new?Scanner(System.in).nextInt();
num2?=?new?Scanner(System.in).nextInt();
System.out.println("求和結(jié)果:"?+?(num1?+?num2));
}?catch?(Exception?e)?{
System.out.println("num1和num2中至少有一個(gè)不是數(shù)字,無(wú)法進(jìn)行計(jì)算");
}
}
public?static?void?main(String[]?args)?{
MainTest?mt?=?new?MainTest();
mt.InputAdd();
}
}
運(yùn)行結(jié)果:
我知道你想表達(dá)什么意思,就是不用自己if else判斷,自己寫的自定義異常能夠識(shí)別出來(lái)錯(cuò)誤,但是這樣是不太可行的(至少我暫時(shí)沒(méi)在網(wǎng)上找到相應(yīng)方案或自己想出來(lái))
首先,if else是必須的,你不去判斷是否異常了何來(lái)的拋出異常?
就比如系統(tǒng)編譯時(shí),一個(gè)String 變量還沒(méi)被賦值,就被System.out.print()出來(lái)了,那這樣肯定是不可行的,肯定會(huì)進(jìn)行判斷,這一套判斷是系統(tǒng)自己定義的,所以編譯的時(shí)候當(dāng)然會(huì)執(zhí)行(因?yàn)椴贿M(jìn)行判斷出錯(cuò)肯定會(huì)導(dǎo)致程序掛了),那你自己定義出來(lái)的,只是你人為定義,你說(shuō)他錯(cuò)他就錯(cuò),其實(shí)不會(huì)導(dǎo)致程序掛了,你把這套強(qiáng)加到系統(tǒng),讓他編譯的時(shí)候進(jìn)行判斷這樣也可以,不過(guò)估計(jì)太復(fù)雜了,這個(gè)Exception內(nèi)是不進(jìn)行這些判斷的,只是拋出一個(gè)信息,判斷什么的都是在其他的地方進(jìn)行,所以你這個(gè)還是不能離開判斷,然后手動(dòng)拋出,用try catch處理,代碼如下(和其他人的回答差不多的),最后碼字不易望采納
class freezedException extends Exception {
public freezedException() {
super("凍結(jié)");
}
}
class nomoneyException extends Exception {
public nomoneyException() {
super("沒(méi)錢");
}
}
class TextException {
public static void main(String[] args) {
boolean flag = true;
float money = 0, i = 0;
try {
if (!flag)
throw new freezedException();
if (i money)
throw new nomoneyException();
} catch (freezedException e1) {
}
catch (nomoneyException e2) {
}
}
}
Java語(yǔ)言提供兩種異常處理機(jī)制:捕獲異常和聲明拋棄異常。
1、捕獲異常:
(1)在Java程序運(yùn)行過(guò)程中系統(tǒng)得到一個(gè)異常對(duì)象是,它將會(huì)沿著方法的調(diào)用棧逐層回溯,尋找處理這一異常的代碼。
(2)找到能夠處理這種類型異常的方法后,運(yùn)行時(shí)系統(tǒng)把當(dāng)前異常交給這個(gè)方法處理;如果找不到可以捕獲異常的方法,則運(yùn)行時(shí)系統(tǒng)將終止,相應(yīng)的Java程序也將退出。
(3)捕獲異常是通過(guò)try-catch-finally語(yǔ)句實(shí)現(xiàn)的。語(yǔ)法為:
try{
...
}catch(ExceptionName1e){
...
}catch(ExceptionName2e){
...
}
...
}finally{
...
}
2、聲明拋棄異常:
(1)當(dāng)Java程序運(yùn)行時(shí)系統(tǒng)得到一個(gè)異常對(duì)象時(shí),如果一個(gè)方法并不知道如何處理所出現(xiàn)的異常,則可在方法聲明時(shí),聲明拋棄異常。
(2)聲明拋棄異常是在一個(gè)方法聲明中的throws子句中指明的。如:
publicintread()throwsIOException{
...
}
其中throwsIOException就是聲明拋棄異常,throws后可以跟多個(gè)異常類型。
擴(kuò)展資料:
程序設(shè)計(jì)語(yǔ)言的異常機(jī)制:
1、多數(shù)語(yǔ)言的異常機(jī)制的語(yǔ)法是類似的:用throw或raise拋出一個(gè)異常對(duì)象(Java或C++等)或一個(gè)特殊可擴(kuò)展的枚舉類型的值(如Ada語(yǔ)言);
2、異常處理代碼的作用范圍用標(biāo)記子句(try或begin開始的語(yǔ)言作用域)標(biāo)示其起始,以第一個(gè)異常處理子句(catch,except,resuce等)標(biāo)示其結(jié)束;可連續(xù)出現(xiàn)若干個(gè)異常處理子句,每個(gè)處理特定類型的異常。
3、某些語(yǔ)言允許else子句,用于無(wú)異常出現(xiàn)的情況。更多見(jiàn)的是finally,ensure子句,無(wú)論是否出現(xiàn)異常它都將執(zhí)行,用于釋放異常處理所需的一些資源。
(1)C++異常處理是資源獲取即初始化(Resource-Acquisition-Is-Initialization)的基礎(chǔ)。
(2)C語(yǔ)言一般認(rèn)為是不支持異常處理的。Perl語(yǔ)言可選擇支持結(jié)構(gòu)化異常處理(structuredexceptionhandling)。
(3)Python語(yǔ)言對(duì)異常處理機(jī)制是非常普遍深入的,所以想寫出不含try,except的程序非常困難。
參考資料來(lái)源:
百度百科-異常處理
當(dāng)前名稱:java整型異常處理代碼 java整型變量
網(wǎng)頁(yè)URL:http://www.chinadenli.net/article20/ddoisco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、品牌網(wǎng)站設(shè)計(jì)、建站公司、搜索引擎優(yōu)化、虛擬主機(jī)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)