try cath finally 塊
try{
System.out.println(divisor / dividend);//ArithmeticException 算數(shù)異常
}catch (Exception e){
e.printStackTrace();
System.out.println("捕獲到一個(gè)異常");
}finally {
System.out.println("不管怎
樣都會(huì)執(zhí)行這個(gè)代碼");
}
1:如果try塊所有語(yǔ)言正常執(zhí)行完畢漏麦,不會(huì)發(fā)生異常阅仔,南無catch所有語(yǔ)句將被忽略
2:如果try塊執(zhí)行中遇到異常且這個(gè)異常與catch異常類型匹配从撼,那么try其余代碼將被忽略catch塊會(huì)被執(zhí)行
3:如果try語(yǔ)句在執(zhí)行中遇到異常,而拋出異常沒有在catch中聲明,程序會(huì)立刻退出
拋出異常throws和throw
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/27 15:31
*/
public class Demo03 {
public static void main(String[] args) throws Exception{ //繼續(xù)向上聲明,不處理
/*try {
steSex("雙性人");
}catch (Exception e){
e.printStackTrace();
System.out.println("非男非女");
}*/
steSex("afwarf");
}
public static void steSex(String sex) throws Exception{ //聲明異常
if (!(sex.equals("男")|| sex.equals("女"))){
throw new Exception("處理不了的異常熏瞄,扔出去"); //拋出異常
}
}
}
throw和throws區(qū)別
1作用不同:throw用于在程序中拋出異常;throw用于聲明在該方法內(nèi)拋出異常
2使用位置不同:throw位于方法內(nèi)部可以做反復(fù)語(yǔ)句使用谬以;throws必須跟在方法參數(shù)后面强饮,不能單獨(dú)使用
3內(nèi)容不同:throw拋出一個(gè)異常對(duì)象,而且只能是一個(gè)为黎,throws后面跟異常類邮丰,而且可以跟多個(gè)異常類
自定義異常
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/27 15:46
*/
public class Demo04 {
public static void main(String[] args){
try {
steSex("雙性人");
}catch (Exception e){
System.out.println("調(diào)用者說處理過了");
}
}
public static void steSex(String sex) throws SexException{ //聲明異常
if (!(sex.equals("男")|| sex.equals("女"))){
throw new SexException("發(fā)現(xiàn)一個(gè)不對(duì)勁的"); //拋出異常
}
}
}
package edu.xcdq;
/**
* @qvthor liuwenzheng
* @date 2021/4/27 15:44
*/
public class SexException extends Exception {
public SexException(){
}
public SexException(String message){
System.out.println(message);
System.out.println("自定義的異常,知道非男飛女铭乾,但是沒辦法處理");
System.out.println("..........");
}
}
注意
1:自定義異常類一般是以Exception結(jié)尾
2:自定義異常類剪廉,必須繼承Exception或RuntimeException
2.1:繼承Exception,那么自定義的異常類就是一個(gè)編譯期異常炕檩,如果方法內(nèi)部拋出了編譯期異常斗蒋,就不許處理這個(gè)異常,要么throws笛质,要么try···caych
2.2:繼承RuntimeException泉沾,那么自定義的異常類就是一個(gè)運(yùn)行期異常,無需處理妇押,交給虛擬機(jī)處理