Java通過面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。在Java中,每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類或其它子類的實(shí)例。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并進(jìn)行處理。Java的異常處理是通過5個(gè)關(guān)鍵詞來實(shí)現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來執(zhí)行一段程序,如果出現(xiàn)異常,系統(tǒng)會(huì)拋出(throws)一個(gè)異常,這時(shí)候你可以通過它的類型來捕捉(catch)它,或最后(finally)由缺省處理器來處理。\x0d\x0a用try來指定一塊預(yù)防所有異常的程序。緊跟在try程序后面,應(yīng)包含一個(gè)catch子句來指定你想要捕捉的異常的類型。\x0d\x0athrow語句用來明確地拋出一個(gè)異常。\x0d\x0athrows用來標(biāo)明一個(gè)成員函數(shù)可能拋出的各種異常。\x0d\x0a可以在一個(gè)成員函數(shù)調(diào)用的外面寫一個(gè)try語句,在這個(gè)成員函數(shù)內(nèi)部寫另一個(gè)try語句保護(hù)其他代碼。每當(dāng)遇到一個(gè)try語句,異常的框架就放到堆棧上面,直到所有的try語句都完成。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),青龍企業(yè)網(wǎng)站建設(shè),青龍品牌網(wǎng)站建設(shè),網(wǎng)站定制,青龍網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,青龍網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
內(nèi)存溢出不是異常,是Error,可以把Error當(dāng)做不可以捕捉的Exception(ThreadDeath除外),Error是程序無法處理的錯(cuò)誤,一般由JVM處理,比如殺死該線程,不要試圖捕捉Error。
一旦出現(xiàn)內(nèi)存溢出錯(cuò)誤,整個(gè)JVM就崩潰了,因此不存在捕獲的可能性。
public class NoOprandException{
String a;
String b;
public NoOprandException(String a,String b){
this.a=a;
this.b=b;
}
public String errorException(){
if((a==nulla.equals(""))(b==nullb.equals(""))){
return "NoOprand錯(cuò)誤!";
}
return;
}
}
public class OnlyOneException{
String a;
String b;
public OnlyOneException(String a,String b){
this.a=a;
this.b=b;
}
public String errorException(){
if((a==nulla.equals(""))||(b==nullb.equals(""))){
return "OnlyOne錯(cuò)誤!";
}
return;
}
}
public class a{
public static void main(String[] args){
Scanner scan1=new Scanner(System.in);
Scanner scan2=new Scanner(System.in);
String line1=scan1.nextLine();
String line2=scan2.nextLine();
try{
throw new OnlyOneException(line1,line2);
}catch(OnlyOneException e){
System.out.print(e);
System.out.exit(0);
}
try{
throw new NoOprandException(line1,line2);
}catch(NoOprandException e){
System.out.print(e);
System.out.exit(0);
}
}
}
class MyException extends Exception //自定義的異常類 繼承Exception類
{
private String exceptionName; //定義一個(gè)私有變量,用來為自定義異常
public MyException(){} //創(chuàng)建一個(gè)無參數(shù)的構(gòu)造函數(shù)
public MyException(String exceptionName){ //創(chuàng)建一個(gè)有參數(shù)的構(gòu)造函數(shù),傳入的參數(shù)為前面定義的異常名稱
this.exceptionName=exceptionName;
}
public String getExceptionName(){ //定義一個(gè)方法,提供給外部來獲取私有變量
return this.exceptionName;
}
public static void main(String [] args){
try{
System.out.println("自定義的異常類對(duì)象");
throw new MyException("自定義的異常");//拋一個(gè)自定義的異常類對(duì)象,傳入的參數(shù)就是給控制臺(tái)看的異常
}catch(MyException e){
System.out.println("異常信息:"+e.getExceptionName());
}
}
}
我已經(jīng)盡力你……你懂的!