Java “Unhandled exception type Exception”錯誤提示 (轉)
阿新 • • 發佈:2019-01-28
在Java中除了RuntimeException及其任何子類,其他異常類都被Java的異常強制處理機制強制異常處理。
關於那些被強制異常處理的程式碼塊,必須進行異常處理,否則編譯器會提示“Unhandled exception type Exception”錯誤警告。
- Java中用於處理異常的方式
- 自行處理:可能引發異常的語句封入在try內,而處理異常的相應語句則封入catch塊內
迴避異常:在方法宣告中包含throws子句,通知潛在呼叫者,如果發生了異常,必須由呼叫者處理。 - 示例
- package Test;
import java.io.*;
import javax.swing.JOptionPane;
public class TestExceptionHandle {
/**
* @param args
*/
public static void main(String[] args) {
// JOptionPane.showInputDialog可能會丟擲HeadlessException,HeadlessException是RuntimeException的子類,編譯器並不會強制異常處理。
String fileName = JOptionPane.showInputDialog("FileName=");
// 通過try...catch語句自行處理異常。
try {
String str = ReadFile(fileName);
JOptionPane.showMessageDialog(null, str);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getStackTrace());
}
}
/**
* 讀取檔案內容並以文字形式返回。
*
* @param fileName
* 檔名。
* @return 檔案內容。
* @throws IOException
* -當IO錯誤時發生。
*/
// 用throws宣告該方法可能丟擲的異常資訊,從而回避異常。
public static String ReadFile(String fileName) throws IOException {
FileReader fleReader = null;
try {
fleReader = new FileReader(fileName);
StringBuffer buffer = new StringBuffer();
char data[] = new char[1024];
int count = 0;
do {
count = fleReader.read(data);
if (count != -1) {
buffer.append(data, 0, count);
}
} while (count != -1);
return buffer.toString();
} finally {
fleReader.close();
}
}
}