課程7.0之Java當(dāng)中的異常


轉(zhuǎn)發(fā)請注明出處:
安卓猴的博客(http://sunjiajia.com)


本節(jié)課程將學(xué)習(xí)以下內(nèi)容:

  • 什么是異常
  • 異常的分類
  • try...catch...finally結(jié)構(gòu)的使用方法
  • throw的作用
  • throws的作用

什么是異常

含義:

  • 在面向?qū)ο蟮氖澜缰校惓R彩菍ο螅?/li>
  • 我們自己的話說劝贸,Java程序在正常運行中姨谷,出現(xiàn)的一些意外,被稱為異常映九。
  • 定義:中斷了正常指令流的事件梦湘;
  • 異常和語法錯誤是不同的東西;
  • 語法錯誤在編譯的時候就會報錯;而異常是在運行的時候拋出來的捌议。

格式:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Demo5.main(Demo.java:3)

例子1:

這個例子它報上面格式中的錯誤哼拔。

class Demo{
  public static void main(String[] args) {
    int i = 1 / 0;
  }
}

異常的分類

  • 所有的異常都是Throwable的直接子類;
  • 有2個這樣的類Exception和Error瓣颅;
  • Error是JVM在運行是產(chǎn)生的錯誤倦逐,一旦產(chǎn)生它,JVM就會直接關(guān)閉宫补;
  • Error也有各種子類檬姥;
  • Exception就是我們學(xué)習(xí)的異常,它也有很多子類守谓,我們將在開發(fā)中遇到穿铆;
  • Exception分為兩大類:運行時異常和編譯時異常;
  • 異常被捕捉后,程序可以正常運行和編譯斋荞。

try...catch...finally結(jié)構(gòu)的使用方法

格式:

try {
  // 有可能出現(xiàn)異常的代碼荞雏,如果語句2出現(xiàn)異常,那么其后面的語句不再執(zhí)行平酿,
  // 直接跳入catch體凤优。
  語句1;
  語句2蜈彼;
  ...
} catch(Exception e) {
  // Exception e是JVM產(chǎn)生的異常對象筑辨;
  // 在這里捕捉異常;
  e.printStackTrace(); //打印異常信息幸逆;
} finally {
        // 無論是否捕捉到了異常棍辕,都會執(zhí)行。有時也稱為異常的出口
  語句还绘;
}

例子2:(請動手)

class Demo{
  public static void main(String[] args) {
    try {
            System.out.println("Hello Monkey!");
      // 有可能出現(xiàn)異常的代碼
      int i = 1 / 0;
    } catch(Exception e) {
      e.printStackTrace();
    } finally {
            // 無論是否捕捉到了異常楚昭,都會執(zhí)行。有時也稱為異常的出口
            System.out.println("Hello Android!");
    }
  }
}

throw和throws

例子3:(請動手)

1.新建一個User.java的源文件:


class User {
    private int age;
    private int money;
    public void setAge(int age) {
        if (age < 0) {
            // 生成一個異常對象
            RuntimeException e = new RuntimeException("年齡不能為負數(shù)拍顷!");
            // 拋出這個異常
            throw e;
        }
        this.age = age;
    }

    // throws的用法抚太,對象在使用這個函數(shù)時,必須要捕捉異常昔案。
    public void setMoney(int money) throws Exception {
        this.money = money;
    }

}

2.新建一個Demo01.java的源文件:


class Demo01 {
    public static void main(String[] args) {
        User user01 = new User();
        //年齡怎么會有負數(shù)呢尿贫?因此我們要捕捉這個異常。
        user01.setAge(-20);

        try {
            user01.setMoney(2000);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("2000太少踏揣!");
        }


    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庆亡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子捞稿,更是在濱河造成了極大的恐慌身冀,老刑警劉巖钝尸,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異搂根,居然都是意外死亡,警方通過查閱死者的電腦和手機铃辖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門剩愧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娇斩,你說我怎么就攤上這事仁卷。” “怎么了犬第?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵锦积,是天一觀的道長。 經(jīng)常有香客問我歉嗓,道長丰介,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任鉴分,我火速辦了婚禮哮幢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘志珍。我一直安慰自己橙垢,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布伦糯。 她就那樣靜靜地躺著柜某,像睡著了一般。 火紅的嫁衣襯著肌膚如雪敛纲。 梳的紋絲不亂的頭發(fā)上喂击,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音载慈,去河邊找鬼惭等。 笑死,一個胖子當(dāng)著我的面吹牛办铡,可吹牛的內(nèi)容都是我干的辞做。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼寡具,長吁一口氣:“原來是場噩夢啊……” “哼秤茅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起童叠,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤框喳,失蹤者是張志新(化名)和其女友劉穎课幕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體五垮,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡乍惊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了放仗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片润绎。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诞挨,靈堂內(nèi)的尸體忽然破棺而出莉撇,到底是詐尸還是另有隱情,我是刑警寧澤惶傻,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布棍郎,位于F島的核電站,受9級特大地震影響银室,放射性物質(zhì)發(fā)生泄漏涂佃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一粮揉、第九天 我趴在偏房一處隱蔽的房頂上張望巡李。 院中可真熱鬧,春花似錦扶认、人聲如沸侨拦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狱从。三九已至,卻和暖如春叠纹,著一層夾襖步出監(jiān)牢的瞬間季研,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工誉察, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留与涡,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓持偏,卻偏偏與公主長得像驼卖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鸿秆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法肮蛹,類相關(guān)的語法抬伺,內(nèi)部類的語法秦陋,繼承相關(guān)的語法,異常的語法恳守,線程的語...
    子非魚_t_閱讀 31,602評論 18 399
  • 通俗編程——白話JAVA異常機制 - 代碼之道,編程之法 - 博客頻道 - CSDN.NEThttp://blog...
    葡萄喃喃囈語閱讀 3,174評論 0 25
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理贩虾,服務(wù)發(fā)現(xiàn)催烘,斷路器,智...
    卡卡羅2017閱讀 134,638評論 18 139
  • 一:java概述:1缎罢,JDK:Java Development Kit颗圣,java的開發(fā)和運行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,635評論 0 11
  • 海棠社(46) 主題:童年 少年游·憶童年 春花秋月幾輪回屁使,幾度夢難追。 雞鴨同唱奔则,狗搖尾望蛮寂,童謠耳邊飛。 斑斕油...
    劉寒霜閱讀 467評論 26 21