為什么要處理異常,Try/Catch應(yīng)該在什么樣的場景下使用蛉鹿?

大家好滨砍,我是IT修真院,一枚正直純潔善良的如剛?cè)腴T的Java程序員,今天跟大家分享一下修真院官網(wǎng)JAVA任務(wù)一妖异,深度思考中的知識點——異常處理的原因惋戏,try/catch的應(yīng)用場景。


1. 知識背景
異常exception

異常是程序中的一些錯誤他膳,但并不是所有的錯誤都是異常响逢,并且錯誤有時候是可以避免的。

異常發(fā)生的原因有很多棕孙,通常包含以下幾大類:

1.用戶輸入了非法數(shù)據(jù)舔亭。

2.要打開的文件不存在些膨。

3.網(wǎng)絡(luò)通信時連接中斷,或者JVM內(nèi)存溢出钦铺。

Try/catch語法

使用 try 和 catch 關(guān)鍵字可以捕獲異常订雾。

try/catch 代碼塊放在異常可能發(fā)生的地方矛洞。try/catch代碼塊中的代碼稱為保護(hù)代碼洼哎。

一個 try 代碼塊可以后面跟隨多個 catch 代碼塊,叫多重捕獲缚甩。

如果一個方法沒有捕獲一個檢查性異常谱净,那么該方法必須使用 throws 關(guān)鍵字來聲明。throws 關(guān)鍵字放在方法簽名的尾部擅威。也可以使用 throw 關(guān)鍵字拋出一個異常,無論它是新實例化的還是剛捕獲到的冈钦。


2. 知識剖析

java如何處理異常郊丛?

java提供了拋出異常捕獲異常的邏輯用于處理異常,當(dāng)程序拋出異常時瞧筛,如果不存在捕獲異常邏輯厉熟,正在執(zhí)行的方法將停止執(zhí)行,并將該異常向外拋出较幌,調(diào)用該方法的程序進(jìn)行同樣的處理揍瑟,如果也沒有進(jìn)行捕獲,則將一層一層的向外拋出乍炉,直到到達(dá)當(dāng)前線程處時將會終止線程的執(zhí)行绢片。


3. 常見問題
在什么場景下加Try-Catch機(jī)制

Try-Catch機(jī)制注意點


4. 解決方案
1)以業(yè)務(wù)邏輯功能為單位,在最上層加Try-Catch機(jī)制岛琼。為什么要這樣做呢底循?這主要是增加程序的健壯性,防止因拋出異常過多槐瑞,導(dǎo)致程序崩潰熙涤。

2)底層代碼,在可能出錯的地方加Try-Catch機(jī)制困檩,用Catch偵測具體的異常祠挫,然后就具體的異常,采取相應(yīng)的解決方案悼沿。

3)底層代碼等舔,在需異常追蹤時加Try-Catch機(jī)制,在Catch塊中拋出自定義異常显沈,調(diào)試時可迅速定位到錯誤代碼段软瞎。

Try-Catch機(jī)制會將異常屏蔽掉逢唤,必須根據(jù)具體的應(yīng)用場景,具體分析涤浇。


5. 編碼實戰(zhàn)
先構(gòu)造一個方法用來表示catch執(zhí)行

image.png

image.png

image.png

6. 擴(kuò)展思考
catch 體里遇到 return 是怎么處理鳖藕?
finally 體遇到 return 怎么辦?
finally 體里有 System.exit() 方法怎么處理只锭?
當(dāng) catch 和 finally 體里同時遇上 return 怎么辦著恩?

(假設(shè)方法需要返回值)java 的異常處理中,

在不拋出異常的情況下蜻展,程序執(zhí)行完 try 里面的代碼塊之后喉誊,該方法并不會立即結(jié)束,而是繼續(xù)試圖去尋找該方法有沒有 finally 的代碼塊纵顾,

如果沒有 finally 代碼塊伍茄,整個方法在執(zhí)行完 try 代碼塊后返回相應(yīng)的值來結(jié)束整個方法;

如果有 finally 代碼塊施逾,此時程序執(zhí)行到 try 代碼塊里的 return 語句之時并不會立即執(zhí)行 return敷矫,而是先去執(zhí)行 finally 代碼塊里的代碼,

若 finally 代碼塊里沒有 return 或沒有能夠終止程序的代碼汉额,程序?qū)⒃趫?zhí)行完 finally 代碼塊代碼之后再返回 try 代碼塊執(zhí)行 return 語句來結(jié)束整個方法曹仗;

若 finally 代碼塊里有 return 或含有能夠終止程序的代碼,方法將在執(zhí)行完 finally 之后被結(jié)束蠕搜,不再跳回 try 代碼塊執(zhí)行 return怎茫。


7. 參考文獻(xiàn)
http://www.cnblogs.com/tianzhiliang/archive/2010/10/09/1846676.html
http://www.blogjava.net/fancydeepin/archive/2012/07/08/java_try-catch-finally.html
https://www.cnblogs.com/zouheng/p/6706114.html


PPT
視頻


今天的分享就到這里啦,歡迎大家點贊妓灌、轉(zhuǎn)發(fā)轨蛤、留言、拍磚~

技能樹.IT修真院

“我們相信人人都可以成為一個工程師旬渠,現(xiàn)在開始俱萍,找個師兄,帶你入門告丢,掌控自己學(xué)習(xí)的節(jié)奏枪蘑,學(xué)習(xí)的路上不再迷茫”岖免。

這里是技能樹.IT修真院岳颇,成千上萬的師兄在這里找到了自己的學(xué)習(xí)路線,學(xué)習(xí)透明化颅湘,成長可見化话侧,師兄1對1免費指導(dǎo)〈巢危快來與我一起學(xué)習(xí)吧~

作者:閔仕宇

不足之處瞻鹏,歡迎指正~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悲立,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子新博,更是在濱河造成了極大的恐慌薪夕,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赫悄,死亡現(xiàn)場離奇詭異原献,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)埂淮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門姑隅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倔撞,你說我怎么就攤上這事讲仰。” “怎么了痪蝇?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵叮盘,是天一觀的道長。 經(jīng)常有香客問我霹俺,道長,這世上最難降的妖魔是什么毒费? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任丙唧,我火速辦了婚禮,結(jié)果婚禮上觅玻,老公的妹妹穿的比我還像新娘想际。我一直安慰自己,他們只是感情好溪厘,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布胡本。 她就那樣靜靜地躺著,像睡著了一般畸悬。 火紅的嫁衣襯著肌膚如雪侧甫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天蹋宦,我揣著相機(jī)與錄音披粟,去河邊找鬼。 笑死冷冗,一個胖子當(dāng)著我的面吹牛守屉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒿辙,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拇泛,長吁一口氣:“原來是場噩夢啊……” “哼滨巴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起俺叭,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤恭取,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绪颖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秽荤,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年柠横,在試婚紗的時候發(fā)現(xiàn)自己被綠了窃款。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡牍氛,死狀恐怖晨继,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搬俊,我是刑警寧澤紊扬,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站唉擂,受9級特大地震影響餐屎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜玩祟,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一腹缩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧空扎,春花似錦藏鹊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撮慨,卻和暖如春竿痰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甫煞。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工菇曲, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抚吠。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓常潮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親楷力。 傳聞我的和親對象是個殘疾皇子喊式,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

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

  • 八孵户、深入理解java異常處理機(jī)制 引子try…catch…finally恐怕是大家再熟悉不過的語句了, 你的答案是...
    壹點零閱讀 1,558評論 0 0
  • 初識異常(Exception) 比如我們在取數(shù)組里面的某個值得時候岔留,經(jīng)常會出現(xiàn)定義的取值范圍超過了數(shù)組的大小夏哭,那么...
    iDaniel閱讀 1,869評論 1 2
  • 一 念青難過的時候竖配,會一個人爬到屋頂上,看著天上的星星里逆,眼淚也就不會流下來了进胯。那年她十歲,媽媽在病床上對她說原押,青青...
    柳白歌閱讀 433評論 0 2
  • 我在想是不是只要是人都會去感知大和小胁镐。 我的孩子在三歲多一點的時候就會比較大和小,他會告訴我們爸爸會胖一點诸衔,媽媽會...
    芒果和桃閱讀 158評論 0 0