導航:首頁 > 源碼編譯 > 異常不處理會通過編譯嘛

異常不處理會通過編譯嘛

發布時間:2023-04-26 14:55:52

java中,異常處理,不寫catch語句(或者不寫異常處理),異常處理是交給誰來完成的

異常是逐級上報的。
當調用的方法拋出異常,而當前方法沒有異常處理的話,異常信息會提交給調用這個方法的方法,擾茄陸在改方法中如果有異納做常處理,則正常處理,如果還沒有,那麼繼續上報給上一級調用這個方法的方法,繼續找異常處理,直到上報到有異常處理的方法,或都沒有直接交給JVM處理
比如:
A方法 -> 調用 -> B方法 -> 調用 -> c方法 -> 調用 -> d方法 -> 調用 -> e方法
若e出現異常且未捕獲異常(就是try-catch),則將異常拋給d,若d捕獲異常了,就處理,未捕獲就將異常拋給c,在c中繼緩頃續找是否捕獲了,未捕獲拋給b,以此類推,直到找到捕獲了異常的方法位置,如果到a也沒有捕獲異常,則交給JVM

㈡ java怎麼判斷一行代碼是會編譯失敗還是運行時異常

用eclipse要是編譯失敗會有紅叉提示你的。運行時異常不會。

㈢ 請問runtimeexception說是運行時異常 可以不進行處理 那麼不處理程序又是怎麼繼續運行的呢

RuntimeException是運行時異常,表示你的代碼本身存在BUG.不是編譯錯誤,所以可以運行.應鬧族含該是邏輯上的錯誤,比如數液笑組下標越界,等等. 一定要處穗脊理

㈣ java中的異常處理的基本結構

1、什麼是異常處理
異常:程序在運行過程中的一些特殊情況,例如:內存不夠用,文件找不到,對象是Null,數組下標越界。當產生這些特殊情況的時候,可能會造成程序不能正常運行。
異常處理:讓程序在發生異常的時候能夠正常執行。
2、異常分類
檢查性異常,必須處理,如果不處理,編譯不能通過。
非檢查性異常,可以不處理,但是一旦發生,程序就不能繼續運行。
3、對於非檢查性異常
雖然編譯的時候不會報錯,能夠運行。但是運行的時候,如果發生錯誤,後果很嚴重。所以還是要處理。可以通過增加代碼來解決。
例子:對於NullPointerException,在調用方法之前可以檢查這個對象是否為null
if(date!=null){
date.getTime();
}
例子:a/b(b為0產生異常),代碼中可以檢查b是否為0
if(b!=0)
a/b;
else
// 拋出異常!
也可以採用try-catch進行處理。
4、try...catch對異常處理
准備工作:在進行異常處理之前,必須清楚可能會發生哪些異常,異常與要調用的方法有關,通常在方法的定義中通過throws聲明可能發生的異常。
把可能產生異常的代碼放在try語句中;
針對每種可能出現的異常,編寫一個catch,catch中寫出異常類型;
在catch對應的代碼中編寫對異常進行處理的代碼,當異常產生並與當前異常類型匹配,將執行catch中的代碼。
基本結構:
try{
// 可能產生異常的代碼
}catch(異常類型 異常對象){
// 異常產生時候的處理代碼
}

㈤ java方法拋異常 但程序中沒人調用 編譯會過嗎 好像不catch編譯報錯 運行那關都不到

很好奇為什麼會有方法裡面套方法?是不是少寫了什麼?
另外,方法拋異常但程序中沒人調用,只要這個方法是protected或者public,你不調用,自然會有人調用。不必擔心編譯不過,否則好多程序沒法寫了。
main函數throws了異常雖然沒必要,但也沒鉛鬧問題。(自然會有人給你try)

你自己調用一個槐伍罩聲明throws XXException的方法,則必須try catch。除非你調用哪個方法的方法也橘磨也聲明了throws XXException或XXException的父類,這叫級聯拋出異常。

㈥ JAVA中,是不是所有異常都能通過編譯,只是運行時才產生錯誤

如果你代碼寫的就有錯誤的話肯定是無法通過編譯的,運行時異常是可以通過編譯的,但是運行就會報錯

㈦ 異常處理是在編譯時進行的

編譯時,不會處理程序的異常,只會處理程序的一些邏輯錯誤、語法錯誤等

㈧ java 異常不處理會怎麼樣

第一種:不做捕獲和拋出
1、如果調用的方法throws拋出了異常,就一定要try catch,不然無法編廳旅枯譯
2、如果調用的方法沒有聲明會拋出異常,那麼不用try catch做處理的話,一旦出現異常,Exception會一層一層地從被調用處向調用處一直拋,直到有處理異常的扮洞方法處理了這個異常。

第鎮銷二種:僅僅是try{}catch(){},或者僅僅是throws
只要try了,不管是catch 還是 finally,try裡面的語句都是執行到出異常的那一句,然後跳出try塊,接著往catch、finally和finally之後的語句執行

㈨ 在JAVA中已檢查異常和位未檢查異常是什麼二者有何區別

1、含義不同:檢查異常就是編譯器要求你必須處置的異常。不知道你編程的時候有沒有遇到過,你寫的某段代碼,編譯器要求你必須要對這段代碼trycatch,或者throwsexception。

非檢查異常是編譯器不要求強制處置的異常,雖然有可能出現錯誤,但是不會在編譯的時候檢查。

2、運行時情況不同:運行時異常都是RuntimeException類及其子類異常,如NullPointerException(空指針異常)、IndexOutOfBoundsException(下標越界異常)等,這些異常是非檢查異常,程序中可以選擇捕獲處理,也可以不處理。

這些異常一般是由程序邏輯錯誤引起的,程序應該從邏輯角度盡可能避免這類異常的發生。

運行時異常的特點是Java編譯器不會檢查它,也就是說,當程序中可能出現這類異常,即使沒有用try-catch語句捕獲它,也沒有用throws子句聲明拋出它,也會編譯通過。

運行時異常是RuntimeException以外的異常,類型上都屬於Exception類及其子類。從程序語法角度講是必須進行處理的異常,如果不處理,程序就不能編譯通過。

如IOException、SQLException等以及用戶自定義的Exception異常,一般情況下不要自定義檢查異常。

3、解決方式不同:檢查異常繼續拋出,消極的方法,一直可以拋到java虛擬機來處理,就是通過throwsexception拋出。用try...catch捕獲。注意,對於檢查的異常必須處理,或者必須捕獲或者必須拋出。

對未檢查的異常捕獲;繼續拋出;不處理。

一般是不處理的,因為你很難判斷會出什麼問題,而且有些異常你也無法運行時處理,比如空指針,需要人手動的去查找,而且,捕捉異常並處理的代價遠遠大於直接拋出。

(9)異常不處理會通過編譯嘛擴展閱讀:

所有異常類型都是Throwable類的子類,它包含Exception類和Error類,Exception又包括checkedexception和uncheckedexception。

uncheckedexception:Java編譯器不要求對未檢查異常一定捕獲或拋出,可以不做處理。此類異常通常是在邏輯上有錯誤,可以通過修改代碼避免。在eclipse中(保存即編譯)編譯後此類異常發生處會報錯。

checkedexception:Java編譯器要求對檢查異常必須捕獲或拋出,代碼邏輯沒有錯誤,但程序運行時會因為IO等錯誤導致異常,你在編寫程序階段是預料不到的。

如果不處理這些異常,程序將來肯定會出錯。所以編譯器會提示你要去捕獲並處理這種可能發生的異常,不處理就不能通過編譯。

㈩ java 程序中發生的異常必須進行處理么

、java異常處理不是必須或者不必須的問題,而是一種程序邏輯的問題,是一種如果...就....的問題,就像if else一樣,如果條件成立,則做xx事,否則做另外的xx事情。
異常也是一樣,如果程序在某種條件下執行正常,則程序繼續進行,如果發生了異常(比如說資料庫連接不上了),那麼說明某芹悉種條件發生了,你需要對這種條件進行另行處理,這就是異常處理。
就像你與朋戚首孝友約會一樣,本來約好了時間地點,如果一切正常,約會照常進行(程序執行正常),但可能由於某種原因,你不能按時高稿參加了,這時異常發生了,你可以打個電話告訴你的朋友(異常處理),當然你也可以什麼也不做(不處理異常),那麼你朋友就可能會生氣(把一堆的錯誤信息拋出)。

閱讀全文

與異常不處理會通過編譯嘛相關的資料

熱點內容
部隊抗洪搶險命令範文 瀏覽:884
歐姆龍plc編程軟體使用教程 瀏覽:590
ai文件pdf 瀏覽:911
騰訊雲伺服器掛載混合雲 瀏覽:758
智能小車用什麼單片機 瀏覽:463
java怎麼給窗口關閉 瀏覽:940
列舉51單片機的定址方式 瀏覽:706
剪輯app怎麼寫長篇文字 瀏覽:400
app專屬流量過月租怎麼不更新 瀏覽:654
王者程序員都有誰 瀏覽:76
給牛換腳掌解壓 瀏覽:387
圍棋有多少種演算法 瀏覽:602
unity資源包在哪個文件夾 瀏覽:704
阿里雲伺服器遠程鏈接不成功 瀏覽:482
文件系統pdf 瀏覽:766
原神安卓區服什麼意思 瀏覽:37
貝殼app怎麼線上發布 瀏覽:159
如何挑選安卓系統機頂盒 瀏覽:54
安卓快充使用有什麼注意事項 瀏覽:909
黑馬程序員的雲計算網課 瀏覽:948