Java中try catch 的基本用法示例
前言
我們編譯運(yùn)行程序出錯(cuò)的時(shí)候,編譯器就會(huì)拋出異常。拋出異常要比終止程序靈活許多,這是因?yàn)?/p>
的Java提供了一個(gè)“捕獲”異常的的處理器(處理器)對(duì)異常情況進(jìn)行處理。
如果沒(méi)有提供處理器機(jī)制,程序就會(huì)終止,并在控制臺(tái)上打印一條信息,給出異常的類型.L
比如:使用了NULL引用或者是數(shù)組越界等。
異常有兩種類型:未檢查異常和已檢查異常對(duì)于已檢查異常,處理器器將會(huì)檢查是否提供了處理器。
然而有許多の異常,如:訪問(wèn)null引用,都屬于未檢查異常。編譯器不會(huì)查看是否為這些錯(cuò)誤提供了處理器。畢竟,應(yīng)該用嚴(yán)謹(jǐn)?shù)膽B(tài)度來(lái)對(duì)待寫(xiě)代碼,依次避免這些錯(cuò)誤的發(fā)生,而不是將精力花在編寫(xiě)異常處理器上。
廢話少說(shuō),show coder:
/ * try catch:自己處理異常
* try {
*可能出現(xiàn)異常的代碼
*} catch(異常類名A e){
*如果出現(xiàn)了異常類A類型的異常,那么執(zhí)行該代碼
*} ...(catch可以有多個(gè))
* finally {
*最終肯定必須要執(zhí)行的代碼(例如釋放資源的代碼)
*}
*代碼執(zhí)行的順序:
* 1.try內(nèi)的代碼從出現(xiàn)異常的那一行開(kāi)始,中斷執(zhí)行
* 2.執(zhí)行對(duì)應(yīng)的catch塊內(nèi)的代碼
* 3.繼續(xù)執(zhí)行try catch結(jié)構(gòu)之后的代碼
*注意點(diǎn):
* 1.如果catch內(nèi)的異常類存在子父類的關(guān)系,那么子類應(yīng)該在前,父類在后
* 2。如果最后中有返回語(yǔ)句,那么最后返回的結(jié)果肯定以最終中的返回值為準(zhǔn)
* 3。如果最后語(yǔ)句中有回報(bào),那么沒(méi)有被處理的異常將會(huì)被吞掉
*重寫(xiě)的注意點(diǎn):
* 1.兒子不能比父親的本事大
* 2.兒子要比父親開(kāi)放
* 3.兒子不能比父親惹更大的麻煩(子類的異常的類型不能是父類的異常的父類型)
*異常類Api:
* 1。的getMessage():獲取異常描述信息字符串
* 2。的toString():返回異常類的包路徑和類名和異常描述信息字符串 * 3。的printStackTrace():除了打印的toString的信息外,還要打印堆棧信息
* /
上面一段注釋來(lái)自網(wǎng)上這位博主的,覺(jué)得寫(xiě)的很好,傳送門地址https://blog.csdn.net/wanghuiwei888/article/details/78818203
package Bird;
import java.io.FileNotFoundException;
import java.io.FileReader;
//
public class TestYc {
public static void main(String[] args) {
try{
FileReader fr = new FileReader("c:/abc.txt");
} catch (FileNotFoundException e) {
//打印輸出異常
e.printStackTrace();
}
Mother mother = new Mother();
mother.bbb();
//1.編譯時(shí)異常
//讀取該路徑"c:/abc.txt"下的文件
/* try {
FileReader fr = new FileReader("c:/abc.txt");
}catch(FileNotFoundException e) {
//打印輸出異常
e.printStackTrace();
}*/
int [] arr = new int[] {1,2,3};
System.out.println(arr[2]);
}
}
class Mother {
private Boy b = null;
// 構(gòu)造器
public Mother() {
b = new Boy();
}
public void bbb() {
// TODO Auto-generated method stub
//調(diào)用帶有異常的方法
try {
b.aaa();
}catch(FileNotFoundException e) {
e.printStackTrace();
}
}
}
class Boy {
// throws 把異常拋給上層的調(diào)用者
public void aaa() throws FileNotFoundException{
FileReader fr = new FileReader("c:/abc.txt");
}
}
運(yùn)行截圖,文件打開(kāi)不存在:

正常運(yùn)行截圖:

總結(jié)
到此這篇關(guān)于Java中try catch基本用法的文章就介紹到這了,更多相關(guān)Java中try catch用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringSecurity rememberme功能實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了SpringSecurity rememberme功能實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Java實(shí)現(xiàn)將數(shù)組的元素用逗號(hào)連接的多種方法
在 Java 開(kāi)發(fā)中,我們經(jīng)常需要將數(shù)組中的元素用逗號(hào)連接成一個(gè)字符串,這種需求在日志記錄、數(shù)據(jù)導(dǎo)出、API 響應(yīng)等場(chǎng)景中非常常見(jiàn),本文將詳細(xì)介紹如何在 Java 中實(shí)現(xiàn)這一功能,并提供多種簡(jiǎn)潔的方法和優(yōu)化建議,需要的朋友可以參考下2025-01-01
基于Java Socket實(shí)現(xiàn)一個(gè)簡(jiǎn)易在線聊天功能(一)
這篇文章主要給大家介紹基于Java Socket實(shí)現(xiàn)一個(gè)簡(jiǎn)易在線聊天功能(一),分為客戶端和服務(wù)端兩段代碼,非常具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05
java中樂(lè)觀鎖與悲觀鎖區(qū)別及使用場(chǎng)景分析
本文主要介紹了java中樂(lè)觀鎖與悲觀鎖區(qū)別及使用場(chǎng)景分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
springBoot整合shiro如何解決讀取不到@value值問(wèn)題
這篇文章主要介紹了springBoot整合shiro如何解決讀取不到@value值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,2023-08-08
SpringSecurity集成圖片驗(yàn)證碼的詳細(xì)過(guò)程
SpringSecurity是通過(guò)過(guò)濾器鏈來(lái)完成的,接下來(lái)的驗(yàn)證碼,可以嘗試創(chuàng)建一個(gè)過(guò)濾器放到Security的過(guò)濾器鏈中,在自定義的過(guò)濾器中比較驗(yàn)證碼,本文通過(guò)實(shí)例代碼介紹SpringSecurity集成圖片驗(yàn)證碼的詳細(xì)過(guò)程,感興趣的朋友一起看看吧2023-12-12
Spring?Boot項(xiàng)目中使用OpenAI-Java的示例詳解
Spring?Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程,這篇文章主要介紹了Spring?Boot項(xiàng)目中使用OpenAI-Java的示例詳解,需要的朋友可以參考下2023-04-04
springboot整合websocket后啟動(dòng)報(bào)錯(cuò)(javax.websocket.server.ServerCont
這篇文章主要介紹了springboot整合websocket后啟動(dòng)報(bào)錯(cuò)(javax.websocket.server.ServerContainer not available),通過(guò)分析錯(cuò)誤信息、排查代碼和配置,找出問(wèn)題的根源,并給出相應(yīng)的解決方案,感興趣的可以了解一下2024-01-01

