6.1-全棧Java筆記:異常處理機(jī)制的概念

異常問題

實(shí)際工作中住练,遇到的情況不可能是非常完美的席里。比如:你寫的某個(gè)模塊,用戶輸入不一定符合你的要求庭砍、你的程序要打開某個(gè)文件性置,這個(gè)文件可能不存在或者文件格式不對(duì)拾并,你要讀取數(shù)據(jù)庫的數(shù)據(jù),數(shù)據(jù)可能是空的等。我們的程序再跑著嗅义,內(nèi)存或硬盤可能滿了等等屏歹。

軟件程序在運(yùn)行過程中,非持耄可能遇到剛剛提到的這些異常問題蝙眶,我們叫異常,英文是:Exception继控,意思是例外械馆。這些,例外情況武通,或者叫異常霹崎,怎么讓我們寫的程序做出合理的處理,安全的退出冶忱,而不至于程序崩潰尾菇。

如果我們要拷貝一個(gè)文件,在沒有異常機(jī)制的情況下囚枪,我們需要考慮各種異常情況派诬,偽代碼如下:

【示例1】偽代碼使用if處理程序中可能出現(xiàn)的各種情況

//將d:/a.txt復(fù)制到e:/a.txt

if("d:/a.txt"這個(gè)文件存在){

??? if(e盤的空間大于a.txt文件長度){

?????? if(文件復(fù)制一半IO流斷掉){

???????????停止copy,輸出:IO流出問題链沼!

?????? }else{

???????????copyFile("d:/a.txt","e:/a.txt");

?????? }

??? }else{

???????輸出:e盤空間不夠存放a.txt默赂!

??? }

}else{

????輸出:a.txt不存在!

}

這種方式括勺,有兩個(gè)壞處:

1.??邏輯代碼和錯(cuò)誤處理代碼放一起缆八!

2.??程序員本身需要考慮的例外情況較復(fù)雜,對(duì)程序員本身要求較高疾捍!

那么奈辰,我們?nèi)绾谓鉀Q應(yīng)對(duì)異常情況呢?JAVA的異常機(jī)制給我們提供了方便的處理乱豆。如上情況奖恰,如果是用JAVA的異常機(jī)制來處理,示意代碼如下(僅限示意宛裕,不能運(yùn)行):

try?{

??? copyFile("d:/a.txt","e:/a.txt");

}?catch?? (Exception e) {

??? e.printStackTrace();

}

異常機(jī)制本質(zhì)

就是當(dāng)程序出現(xiàn)錯(cuò)誤瑟啃,程序安全退出的機(jī)制

異常(Exception)的概念

我們開始看我們的第一個(gè)異常對(duì)象,并分析一下異常機(jī)制是如何工作的揩尸。

【示例2】異常的分析

public?class?Test {

????public?static?void?main(String[] args) {

???????int?i=1/0;

?????? System.out.println(i);

??? }

}

示例2?運(yùn)行效果圖?

Java是采用面向?qū)ο蟮姆绞絹硖幚懋惓5挠加臁L幚磉^程:

1.拋出異常:在執(zhí)行一個(gè)方法時(shí),如果發(fā)生異常疲酌,則這個(gè)方法生成代表該異常的一個(gè)對(duì)象蜡峰,停止當(dāng)前執(zhí)行路徑,并把異常對(duì)象提交給JRE朗恳。

2.捕獲異常:JRE得到該異常后湿颅,尋找相應(yīng)的代碼來處理該異常。JRE在方法的調(diào)用棧中查找粥诫,從生成異常的方法開始回溯油航,直到找到相應(yīng)的異常處理代碼為止。


本節(jié)課我們先聊到這兒怀浆,明天我們繼續(xù)聊……



「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記谊囚。筆者江湖人稱 Mr. G,10年Java研發(fā)經(jīng)驗(yàn)执赡,曾在神州數(shù)碼镰踏、航天院某所研發(fā)中心從事軟件設(shè)計(jì)及研發(fā)工作,從小白逐漸做到工程師沙合、高級(jí)工程師奠伪、架構(gòu)師。精通Java平臺(tái)軟件開發(fā)首懈,精通JAVAEE绊率,熟悉各種流行開發(fā)框架。


筆記包含從淺入深的六大部分:

A-Java入門階段

B-數(shù)據(jù)庫從入門到精通

C-手刃移動(dòng)前端和Web前端

D-J2EE從了解到實(shí)戰(zhàn)

E-Java高級(jí)框架精解

F-Linux和Hadoop?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末究履,一起剝皮案震驚了整個(gè)濱河市滤否,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌最仑,老刑警劉巖藐俺,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盯仪,居然都是意外死亡紊搪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門全景,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耀石,“玉大人,你說我怎么就攤上這事爸黄≈臀埃” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵炕贵,是天一觀的道長梆奈。 經(jīng)常有香客問我,道長称开,這世上最難降的妖魔是什么亩钟? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任乓梨,我火速辦了婚禮,結(jié)果婚禮上清酥,老公的妹妹穿的比我還像新娘扶镀。我一直安慰自己,他們只是感情好焰轻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布臭觉。 她就那樣靜靜地躺著,像睡著了一般辱志。 火紅的嫁衣襯著肌膚如雪蝠筑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天揩懒,我揣著相機(jī)與錄音什乙,去河邊找鬼。 笑死已球,一個(gè)胖子當(dāng)著我的面吹牛稳强,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播和悦,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼退疫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鸽素?” 一聲冷哼從身側(cè)響起褒繁,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馍忽,沒想到半個(gè)月后棒坏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡遭笋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年坝冕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓦呼。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喂窟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出央串,到底是詐尸還是另有隱情磨澡,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布质和,位于F島的核電站稳摄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏饲宿。R本人自食惡果不足惜厦酬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一胆描、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仗阅,春花似錦袄友、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽支竹。三九已至旋廷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間礼搁,已是汗流浹背饶碘。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留馒吴,地道東北人扎运。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像饮戳,于是被迫代替她去往敵國和親豪治。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

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