Java中try catch處理異常示例
?描述說明:
public class TryCatchStu {
?/*try catch:自己處理異常
? *try{
? * 可能出現(xiàn)異常的代碼
? *}catch(異常類名A e){
? * 如果出現(xiàn)了異常類A類型的異常,那么執(zhí)行該代碼
? *}...(catch可以有多個)
? *finally{
? * 最終肯定必須要執(zhí)行的代碼(例如釋放資源的代碼)
? *}
? *代碼執(zhí)行的順序:
? *1.try內(nèi)的代碼從出現(xiàn)異常的那一行開始,中斷執(zhí)行
? *2.執(zhí)行對應(yīng)的catch塊內(nèi)的代碼
? *3.繼續(xù)執(zhí)行try catch 結(jié)構(gòu)之后的代碼
? *注意點:
? *1.如果catch內(nèi)的異常類存在子父類的關(guān)系,那么子類應(yīng)該在前,父類在后
? *2.如果finally中有return語句,那么最后返回的結(jié)果肯定以finally中的返回值為準(zhǔn)
? *3.如果finally語句中有return,那么沒有被處理的異常將會被吞掉
? *重寫的注意點:
? *1.兒子不能比父親的本事大
? *2.兒子要比父親開放
? *3.兒子不能比父親惹更大的麻煩(子類的異常的類型不能是父類的異常的父類型)
? *異常類Api:
- ? *1.getMessage():獲取異常描述信息字符串
- ? *2.toString():返回異常類的包路徑和類名和異常描述信息字符串
- ? *3.printStackTrace():除了打印toString的信息外,還要打印堆棧信息
? */
實例代碼:
public static void main(String[] args)
{
System.out.println(demo());
}
public static int demo(){
GirlHome gh = new GirlHome("小陳陳",'男',28);
try{
gh.intoHome();
System.out.println("進入了女生宿舍");
return 0;
}catch(SexOutException e){
//System.out.println("出現(xiàn)了異常");
//System.out.println(e);
e.demo();
e.printStackTrace();
}catch (AgeOutException e) {
// TODO: handle exception
}finally{
System.out.println("我必須被執(zhí)行");
}
return 1;
//System.out.println("愉快的一天結(jié)束啦");
}
class GirlHome {
public String name;
public char sex;
public int age;
public GirlHome(String name,char sex,int age)
{
super();
this.name = name;
this.sex = sex;
this.age = age;
}
//如果發(fā)現(xiàn)進入者是男的,那么拋出性別異常
public void intoHome() throws SexOutException,AgeOutException{
if(sex!='女'){
SexOutException se = new SexOutException(name+"你不是女的,滾!!!");
throw se;
}
if(age>25){
throw new AgeOutException(name+"你的年齡太大了,滾!!!!");
}
System.out.println(name+"開心的進入了宿舍");
}
public void demo()throws Exception{}
}
class SmallGirlHome extends GirlHome{
public SmallGirlHome(String name, char sex, int age)
{
super(name, sex, age);
// TODO Auto-generated constructor stub
}
@Override
public void intoHome() throws SexOutException,AgeOutException
{
}
public void demo()
{
}
class AgeOutException extends Exception{
public AgeOutException(String message){
super(message);
}
}
class SexOutException extends Exception{
public SexOutException(String message){
super(message);
}
public void demo(){
System.out.println("愛啦啦阿拉");
}
}
到此這篇關(guān)于Java中try catch基本用法的文章就介紹到這了,更多相關(guān)Java中try catch用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring mvc中@PathVariable / 帶斜杠方式獲取
這篇文章主要介紹了spring mvc中@PathVariable / 帶斜杠方式獲取,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java一維數(shù)組和二維數(shù)組元素默認(rèn)初始化值的判斷方式
這篇文章主要介紹了Java一維數(shù)組和二維數(shù)組元素默認(rèn)初始化值的判斷方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
關(guān)于Synchronized和ReentranLock的區(qū)別及說明
文章介紹了Java中的`synchronized`關(guān)鍵字和`ReentrantLock`類,兩者都可以用于解決多線程同步問題,但`ReentrantLock`提供了更多的功能和靈活性2024-12-12
Spring?多數(shù)據(jù)源方法級別注解實現(xiàn)過程
多數(shù)據(jù)源管理是Spring框架中非常重要的一部分,它可以提高應(yīng)用程序的靈活性和可靠性,從而更好地滿足業(yè)務(wù)需求,這篇文章主要介紹了Spring?多數(shù)據(jù)源方法級別注解實現(xiàn),需要的朋友可以參考下2023-07-07

