日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java 异常处理 try catch finally throws throw 的使用和解读(一)

發(fā)布時(shí)間:2023/12/1 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 异常处理 try catch finally throws throw 的使用和解读(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近的一個(gè)內(nèi)部表決系統(tǒng)開發(fā)過程中,
發(fā)現(xiàn)對(duì)異常處理還存在一些模棱兩可的地方,
所以想著整理一下
主要涉及到:
1.try catch finally throws throw 的使用和解讀
2.自定義異常的使用
3.常見的運(yùn)行異常

/**
* Java 異常處理
* try catch finally throws throw
* @author Ma San
*
*/
public class ExceptionTest {


// 函數(shù)可能發(fā)生異常時(shí) 兩種處理辦法
// 1.try catch 捕獲并處理異常
// 2.throws 聲明異常
/**
* try catch 捕獲并處理異常
*/
public void function1(int index){
try {
// 以下代碼拋出異常,并且被捕獲
if(--index<0) throw new Exception("index out of 0");
} catch (Exception e) {
// catch 內(nèi)處理異常
// TODO: handle exception
}
}

/**
* throws 聲明異常
* @throws Exception
*/
public void function2(int index) throws Exception{
// 以下代碼拋出異常
if(--index<0) throw new Exception("index out of 0");
}

// 比較 try catch 和 throws 的區(qū)別
// 前者會(huì)捕獲異常并處理,后者只是聲明會(huì)發(fā)生的異常,并不能捕獲也不能處理
// throws聲明異常,如果被拋出,最終也會(huì)被try catch 捕捉處理
// 如果程序中沒有try catch 那么 該線程被終止,如果是主線程則程序會(huì)被終止

// try catch finally throws throw 語法規(guī)則和比較

// 1.try catch :捕獲異常
// 2.finally : 任何情況下都會(huì)執(zhí)行的代碼
// 3.throws: 聲明可能會(huì)發(fā)生的異常
// 4.throw: 拋出異常

//語法規(guī)則:
//(1):try代碼塊不能單獨(dú)存在,后邊至少有一個(gè)catch或者finally代碼塊
// 以下代碼會(huì)發(fā)生編譯錯(cuò)誤
public static void main(String args[]) throws Exception{
try{
//代碼
}
}
//(2):try代碼快后邊可以沒有catch也可以有多個(gè)catch,可以沒有finally也可以有一個(gè)finally
// 其中,如果catch 和 finally要共存,則finally 必須出現(xiàn)在catch的后面

// (3): try 代碼塊和catch、finally代碼塊是不同的作用域
// 在try代碼塊聲明的變量 catch 和 finally不能訪問
try
{
// 在try代碼塊中聲明變量
int num = 0;

}
catch (Exception e)
{
num++; // 不合法,編譯錯(cuò)誤
}finally{
num = 9; // 不合法,編譯錯(cuò)誤
}

// 定義在try代碼塊外
int num = 0;
try
{

}
catch (Exception e)
{
num++; // 合法
}finally{
num = 9; // 合法
}

?

(4): try 后面包含多個(gè)catch的時(shí)候,JVM會(huì)一次和各個(gè)catch代碼塊聲明的異常類型匹配
如果異常對(duì)象為某個(gè)異常類型或者其子類實(shí)例就執(zhí)行這個(gè)catch代碼塊,不再執(zhí)行其他的。
例:
try
{
code;//假設(shè)可能拋出FileNotFoundException
}
catch (SQLException)
{
System.out.println("SQLException");
}
catch (IOException)
{
System.out.println("IOException");
}
catch (Exception)
{
System.out.println("Exception");
}
發(fā)生異常控制臺(tái)會(huì)輸出 “Exception”;

(5)throw 語句后面不允許緊跟其他語句,因?yàn)檫@些語句永遠(yuǎn)不會(huì)被執(zhí)行

}

轉(zhuǎn)載于:https://www.cnblogs.com/maxm/p/6632264.html

總結(jié)

以上是生活随笔為你收集整理的Java 异常处理 try catch finally throws throw 的使用和解读(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。