日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

处理可能发生的异常

發(fā)布時(shí)間:2023/12/3 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 处理可能发生的异常 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 什么是異常?
    異常指的時(shí)程序在【編譯】和【運(yùn)行時(shí)】的一些不正常的狀況。 Java的工程師其實(shí)早就想到可能會(huì)出現(xiàn)這些問(wèn)題,他們把常見(jiàn)的問(wèn)題寫(xiě)成類。 當(dāng)我們出現(xiàn)這些異常時(shí),可以根據(jù)API中去查找這些異常產(chǎn)生的原因。
    ArrayIndexOutOfBoundsException: 數(shù)組索引越界異常
    NullPointerException: 空指針異常

  • 異常的體系結(jié)構(gòu)?
    異常的根類Throwable,它下面有兩個(gè)子類Error和Exception
    Throwable
    – Error: 非常嚴(yán)重的問(wèn)題(錯(cuò)誤,不需要解決)
    – Exception: 表示異常(可以解決)
    –Exception的直接子類:編譯時(shí)異常,在編譯時(shí)給出錯(cuò)誤提示
    –RuntimeException的子類:運(yùn)行時(shí)異常,在運(yùn)行時(shí)打印在控制臺(tái)(異常信息)

  • 如何處理異常?
    3.1:不做任何處理,就是交給JVM處理
    特點(diǎn):直接終止程序運(yùn)行,把異常信息打印在控制臺(tái)

    3.2:使用 try … catch 處理:
    特點(diǎn):把可能出現(xiàn)異常的代碼包裹起來(lái),即使有異常產(chǎn)生,【代碼還能繼續(xù)執(zhí)行】
    try{
    //有可能出現(xiàn)異常的代碼
    }catch(異常類1 e1){
    //如果try有異常產(chǎn)生,就會(huì)被catch捕獲到,就執(zhí)行catch里面的代碼
    }catch(異常類2 e2){

    }catch(Exception e3){
    //不管try里面有什么異常,這里都可以捕獲
    }finally{
    //不管前面異常是否產(chǎn)生,finally里面的代碼都回執(zhí)行
    }

    3.3:使用 throws 聲明異常:
    //在寫(xiě)一個(gè)方法時(shí),方法中可能產(chǎn)生異常,需要使用throws聲明。
    public static void show(String s) throws 異常類{
    //在方法中,可能由于調(diào)用者傳遞的參數(shù)不正確,導(dǎo)致代碼出現(xiàn)異常。
    }

  • //處理可能發(fā)生的異常 public class Demo1 {public static void main(String[] args) {//需求:傳入一個(gè)生日,得到年齡//2.try catchtry {show("2020/10-10");//兩種方法,1.和方法一樣將異常拋出給虛擬機(jī),出現(xiàn)異常,虛擬機(jī)會(huì)打印異常信息}catch (ParseException e){e.printStackTrace();//打印全部[用的最多]//System.out.println(e.toString());//把異常對(duì)象轉(zhuǎn)換為字符串[異常類類名+異常的解釋]//System.out.println(e.getMessage());//僅僅是異常的解釋}catch (Exception e){System.out.println("不管什么異常,都可以捕獲");}finally {System.out.println("不管有沒(méi)有異常,都可以執(zhí)行");}System.out.println("over");}public static void show(String birthday) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date parse = sdf.parse(birthday);//throws 異常申明,拋給使用者long time1 = parse.getTime();long time2 = System.currentTimeMillis();System.out.println("年齡為: "+(time2-time1)/1000/60/60/365);} }打印結(jié)果: -------------------------------------------------------------- java.text.ParseException: Unparseable date: "2020/10-10"at java.base/java.text.DateFormat.parse(DateFormat.java:395)at com.itheima.Demo1.show(Demo1.java:28)at com.itheima.Demo1.main(Demo1.java:13) 不管有沒(méi)有異常,都可以執(zhí)行 over

    4.Throwable的方法 【異常對(duì)象為 上面第3點(diǎn)的 e】
    Throwable類中提供了一些方法,所有的異常對(duì)象都能調(diào)用。
    public String toString()
    把異常對(duì)象轉(zhuǎn)換為字符串,有 “異常常類名:異常的解釋”
    public String getMessage()
    獲取異常對(duì)象的解釋(消息),就是異常信息”:"后面的一部分
    public void void printStackTrace()
    打印異常的所有信息,包含異常的類名+異常的解釋(消息)+異常的位置

    總結(jié)

    以上是生活随笔為你收集整理的处理可能发生的异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。