A. java語法規定:受檢查異常,比如IO異常,SQL異常,必須向上聲明拋出(使用throwrs關鍵字)或者處理掉否...
一般一個方法它自己不處理異常而是直接throws Exception將異常拋出給使用者進行處理的。
Java系統提供的類,其中很多方法就是這樣的。
只要一個方法內部有throws Exception,那麼你在使用這個方法的時候必須得進行try{}catch{}處理或者你也拋出錯誤。
1樓的朋友說的正確。
B. IO 異常怎麼解決
兩種方法:
1.出現異常的代碼所在的方法前throws IOException
public void test() throws IOException {
BufferedReader bu = new BufferedReader(
new InputStreamReader(System.in));
String str = bu.readLine();
}
2.用try-catch撲捉
public void test() {
BufferedReader bu = new BufferedReader(
new InputStreamReader(System.in));
try {
String str = bu.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
C. java怎麼知道異常類是編譯異常還是運行異常
不知道你用什麼開發
在dos下比較容易區分
javac(編譯文件)與 java(執行文件) 命令知道吧?
在敲javac 後報的錯誤都是編譯異常
在敲java 後報的錯誤都是運行異常
比如你寫個java程序,簡單點的直接輸出(1/0)的結果,編譯是通過的,而執行起來就報錯了(算術錯誤),那它就是運行異常
回復樓下:本來就是要在dos下編譯運行的嘛,在Eclipse里當然不行了,它會自動檢查的,高級貨
D. 編譯時異常和運行時異常有什麼區別啊
Throwable 是所有 Java 程序中錯誤處理的父類 ,有兩種資類: Error 和 Exception 。 Error :表示由 JVM 所偵測到的無法預期的錯誤,由於這是屬於 JVM 層次的嚴重錯誤 ,導致 JVM 無法繼續執行,因此,這是不可捕捉到的,無法採取任何恢復的操作,頂多隻能顯示錯誤信息。 Exception :表示可恢復的例外,這是可捕捉到的。 Java 提供了兩類主要的異常 :runtime exception 和 checked exception 。 checked 異常也就是我們經常遇到的 IO 異常,以及 SQL 異常都是這種異常。 對於這種異常, JAVA 編譯器強制要求我們必需對出現的這些異常進行 catch 。所以,面對這種異常不管我們是否願意,只能自己去寫一大堆 catch 塊去處理可能的異常。 但是另外一種異常: runtime exception ,也稱運行時異常,我們可以不處理。當出現這樣的異常時,總是由虛擬機 接管。比如:我們從來沒有人去處理過 NullPointerException 異常,它就是運行時異常,並且這種異常還是最常見的異常之一。 出現運行時異常後,系統會把異常一直往上層拋,一直遇到處理代碼。如果沒有處理塊,到最上層,如果是多線程就由 Thread.run() 拋出 ,如果是單線程就被 main() 拋出 。拋出之後,如果是線程,這個線程也就退出了。如果是主程序拋出的異常,那麼這整個程序也就退出了。運行時異常是 Exception 的子類,也有一般異常的特點,是可以被 Catch 塊處理的。只不過往往我們不對他處理罷了。也就是說,你如果不對運行時異常進行處理,那麼出現運行時異常之後,要麼是線程中止,要麼是主程序終止。 如果不想終止,則必須撲捉所有的運行時異常,決不讓這個處理線程退出。隊列裡面出現異常數據了,正常的處理應該是把異常數據舍棄,然後記錄日誌。不應該由於異常數據而影響下面對正常數據的處理。 在這個場景這樣處理可能是一個比較好的應用,但並不代表在所有的場景你都應該如此。如果在其它場景,遇到了一些錯誤,如果退出程序比較好,這時你就可以不太理會運行時異常 ,或者是通過對異常的處理顯式的控製程序退出。 異常處理的目標之一就是為了把程序從異常中恢復出來 。
E. 為什麼IO異常一定要處理
Java追求的是無故障,健壯的代碼,因此對一些可預知和不可預知的錯誤(如設備錯誤,演算法缺陷等)要進行處理,有兩種方法:
一種是捕獲: 一種是拋出 .
你可以嘗試自己寫一個父類,方法中有拋出異常,然後繼承這個方法的子類,就必須要捕獲,或者也throws 一個異常。
java.io.Reader
是BufferedReader 的父類,它本身方法會拋出一個異常。所以它的子類繼承了這個方法也需要捕獲或者拋出一個異常。這個BufferedReader 繼承的父類的方法就必須要處理異常,是因為JDK裡面的java.io.Reader 方法有拋出異常的需要。
更多可以參看下面IBM網站鏈接的「Java 異常處理及其應用」
F. 救命,怎樣才能產生java.io.IOException異常
一般在讀寫操作是才產生這個異常....你去File file=new File(「」);裡面文件找不到就會拋異常了
G. 為啥jdk IO 要拋出編譯期異常
這是你們設計的問題
人家是指明了說你必須要明確的處理這些異常,至於怎麼處理是沒有規定的
你可以catch 起來,也可以繼續申明拋出
H. 電腦io異常是什麼意思
IO錯誤(應該是存在壞道),未格式化,文件目錄損壞,頁內操作錯誤,函數不正確,無法讀取之類的,是分區結構出現異常。引起的分區錯誤。單擊右鍵屬性看到的是RAW格式。移動硬碟的話,很大程度是因為摔碰。強拔之類的操作,也可能是壞道。病毒,硬碟本身質量問題引起的。經常會因為系統讀取移動硬碟信息困難,只能讀取一部分,而且無法打開。有時候會引起系統假死,卡機。有數據的話,一定不要重分區,格式化之類的操作。那樣的話恢復的數據不完整。保持現狀。正確的分析處理很大程度上是可以完整的恢復出原來的數據的。而不需要數據恢復軟體掃描恢復。單純使用數據恢復軟體掃描恢復的話,耗時,效果也很難說。很多時候都是100%完整恢復原來的分區,這些分區的數據出現這種問題的關鍵是要保護好出現問題的硬碟狀態。如果要自己嘗試恢復,參考使用數據恢復軟體掃描恢復,記住不要對出現問題的硬碟寫入找到的文件。而應該把找到的數據先恢復到別的硬碟上。確定正確後再處理出現問題的分區。換台電腦插這硬碟進去,把裡面的資料拷出來
I. java中什麼情況下會發生io異常
比如文件不存在、讀取的文件流、網路流字元有問題都會導致