1.自定義異常類:
/** * 自定義異常,只要繼承繼承Exception類或其子類即可 * @author Administrator * */ public class FileException extends Exception { /*public FileException(){ } public FileException(String gripe){ //super(gripe); }*/ public void printStackTrace(){ System.out.println("suohai"); } }
2.丟擲異常:
class Text{ public static void t() throws FileException{ /* * 呼叫t(),必須捕捉這異常,需要在別的類中接受這異常,就得throws Exception * throws FileException且別的類呼叫時,必須使用try...catch語句,不管能不能捕獲, * 即在此方法中已經捕獲這個異常,但並沒有再次丟擲,呼叫此方法的類並不會捕獲這異常,依然要try...catch */ /** * 可以只在方法中丟擲異常,在呼叫方法時捕捉異常 * 也可以直接在方法內捕捉異常,即不用try...catch語句, * 直接丟擲異常:throw new FileException("hehe"); */ try{ throw new FileException();//丟擲異常,呼叫FileException類的構造方法 }catch(FileException e){ System.out.println("呵呵"); throw e;//要想在方法外面再次捕捉這異常,需要再次丟擲,因為在外面呼叫方法時,永遠都會被方法內的捕獲。 } } }
3.捕獲異常:
public class ExceptionTest { public static void main(String[] args) { /**即便不會捕獲這個異常, *也需要使用try...catch語句 **/ try { Text.t(); } /*catch (FileException e) { System.out.println("啊哈"); } */ catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
4.執行結果:
呵呵
suohai