过完了520,估计很多暂时还没对象的小伙伴们昨天吃狗粮吃到饱了吧?咱们也不用羡慕人家成双成对的。没有对象的日子里,至少你还有自有。开个玩笑,别介意。咱们言归正传来说说<em>Java</em>异常是怎样处理的。在<em>Java</em
2021-05-21 17:02:04
過完了520,估計很多暫時還沒物件的小夥伴們昨天吃狗糧吃到飽了吧?咱們也不用羨慕人家成雙成對的。沒有物件的日子裡,至少你還有自有。開個玩笑,別介意。咱們言歸正傳來說說Java異常是怎樣處理的。
在Java程式中,有兩種處理異常的方式。第一種是使用try(){}程式碼塊來捕獲異常,然後使用catch{}程式碼塊來處理捕捉到的異常。第二種是直接拋出異常到更上級。
咱先來聊一聊第一種。慣例,有圖有真相:
上圖中演示的就是使用try-catch程式碼塊處理異常的過程。我們看到原本有報錯(這裡是檢查異常時發現了一個受檢異常爆出的紅槓),需要主動處理異常的程式碼在使用try-catch程式碼塊之後,不再報異常了。
使用try-catch程式碼塊處理異常的時候,try程式碼塊負責捕獲異常,捕獲到的異常被封裝在了catch關鍵字右邊的Exception物件裡面。上圖對異常的處理是輸出異常的錯誤堆棧資訊,通過這些輸出的資訊,我們就能夠搞清楚程式碼中有什麼漏洞,從而對我們的程式碼進行一些邏輯上的修改,避免下一次程式運行到這裡時再次拋出該異常。大多數時候,我們會在catch程式碼塊中編寫一些邏輯。當異常發生的時候,程式就會走進catch程式碼塊,執行我們編寫的程式碼來按照我們的設計處理異常。
打個比方,我寫一個發紅包的程式。程式的邏輯是「校驗資訊」,「支付」,「發紅包」。如果支付成功,但是發紅包的時候,程式出現異常,那麼就必須要退款。這個時候,我們使用try程式碼塊包圍「發紅包」的邏輯。當「發紅包」邏輯拋出異常的時候,就會進入到catch程式碼塊。我們在catch程式碼塊呼叫退款的介面將扣的錢退回去。
這是第一種處理異常的方式。接下來,我們來說第二種方式。
第二種是直接將異常拋給上一層呼叫者。也就是說,你呼叫我這個介面,我出現異常,我自己不處理異常,將異常拋給你。你不想處理的話就繼續拋給呼叫你的呼叫者。上程式碼:
結合java語言的三層架構,這種方式一般是在service服務層使用,將異常拋出到檢視層(Controller)中,再由檢視層集中進行try-catch處理。
說完兩種異常處理方式,我們再來說一說try-catch-finally程式碼塊。
其實try-catch-finally程式碼塊就是try-catch的補充。在某些場景下,會有這樣的需求:不管程式是否正常走完,都必須執行某一段程式碼來完成一些必要的邏輯。這時候,finally程式碼塊就派上用場了。如圖,我們在try-catch處理完異常需要列印一句話「hello 檔案找不到」,但是在catch程式碼塊中,程式已經return(返回程式的運行結果)了。我們分別在finally程式碼塊與finally程式碼塊下面列印這句話:
結果發現,程式會執行finally中的列印語句,但是下方不在finally程式碼塊的程式沒有執行。這就是finally程式碼塊的作用:無論如何,一定執行某段邏輯。
那麼小夥伴們,你們能想象一下,在現實生活中,finally有什麼使用場景嗎?歡迎在評論區留言互動。
相關文章
过完了520,估计很多暂时还没对象的小伙伴们昨天吃狗粮吃到饱了吧?咱们也不用羡慕人家成双成对的。没有对象的日子里,至少你还有自有。开个玩笑,别介意。咱们言归正传来说说<em>Java</em>异常是怎样处理的。在<em>Java</em
2021-05-21 17:02:04
预计第二季度过后<em>苹果手机</em>在国内的市场份额将会超过13%,多涨几个百分点。为什么这样说?原因,其一,第一季度<em>iPhone</em>12系列的手机没有大幅度的降价。其二,最近<em>苹果手机iPhone</em>12正在大幅度降价,并且
2021-05-21 17:01:50
什么品牌的手机电池容量最差,大家第一时间想到的应该是<em>苹果手机</em>吧!但尽管<em>iPhone</em>有这一面的缺点,在国内还是吸粉无数呢!<em>iPhone</em>电池小的原因 <em>iPhone</em>的设计风格,主打轻巧薄。机型太小,这
2021-05-21 17:01:37
此外,曹县用户也非常青睐转转集团旗下转转和找靓机两大平台严选靓机卖场售卖的手机3C商品。转转集团数据显示,今年一季度曹县用户通过转转集团买走的二手手机Top10机型全部都是苹果<em>iPhone</em>,其中<em>iPhone</em>X
2021-05-21 17:01:29
不知不觉,我们已经介绍了关于<em>Excel</em>打印相关应用的四个知识点:打印预览、页面布局、分页预览和打印标题。本期的主题也将暂时结束我们对<em>Excel</em>打印的系列介绍——页眉页脚的设置。如下图所示,当我们使用
2021-05-21 17:00:04
该屏幕采用的技术值得一说,其采用的是3D康宁大猩猩玻璃,该玻璃抗打击能力极强。从一加8 Pro的整体机型设计来说,该风格还是相当适合年轻人的。一加8 Pro的CPU 一加8 Pro搭载了<em>高通</em>的骁龙658处理器,该处理器采用
2021-05-21 16:31:17