1. 程式人生 > >Java “Unhandled exception type Exception”錯誤提示 (轉)

Java “Unhandled exception type Exception”錯誤提示 (轉)

在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();
        }
    }
}