try-catch-finally的使用
try 塊: 用於捕獲異常。其後可接零個或多個 catch 塊,如果沒有 catch 塊,則必須跟一個 finally 塊。
catch 塊: 用於處理 try 捕獲到的異常。
finally 塊: 無論是否捕獲或處理異常,finally 塊裡的語句都會被執行。當在 try塊或 catch 塊中遇到 return 語句時,finally 語句塊將在方法返回之前被執行。
在以下 4 種特殊情況下,finally 塊不會被執行:
在 finally 語句塊第一行發生了異常。 因為在其他行,finally 塊還是會得到執行 在前面的程式碼中用了
System.exit(int)已退出程式。 exit 是帶參函式 ;若該語句在異常語句之後,finally 會執行
程式所在的執行緒死亡。
關閉 CPU。
注意: 當 try 語句和 finally 語句中都有 return 語句時,在方法返回之前,finally 語句的內容將被執行,並且 finally 語句的返回值將會覆蓋原始的返回值。如下:
public class Test {
public static int f(int value) {
try {
return value * value;
} finally {
if (value == 2) {
return 0;
}
}
}
}
如果呼叫 f(2),返回值將是 0,因為 finally 語句的返回值覆蓋了 try 語句塊的返回值。
相關文章
- try-catch-finally,被你忽略掉的執行順序
- [Java基礎]try-catch-finally 和 return 的執行順序Java
- Scrapy框架的使用之Scrapyrt的使用框架
- Urllib庫的使用一---基本使用
- Docker框架的使用系列教程(四)容器的使用Docker框架
- ActiveMQ的使用及整合spring的使用例項MQSpring
- vmstat的使用
- char *的使用
- mount 的使用
- conda的使用
- 索引的使用索引
- pinia的使用
- netcat的使用
- jextract的使用
- postman的使用Postman
- pycnblog的使用
- Tensorboard的使用ORB
- Playwright的使用
- TSkAnimatedImage 的使用
- TSkLabel的使用
- FlowableAPI的使用API
- hive 的使用Hive
- hiveBeen 的使用Hive
- yaml的使用YAML
- etcd的使用
- git的使用Git
- protobuf的使用
- axios的使用iOS
- Crontab 的使用
- pip 的使用
- DBV 的使用
- Docker的使用Docker
- Promise的使用Promise
- SVN的使用
- EndNote的使用
- git的使用+Git
- FutureTask的使用
- SpringAOP的使用Spring