练习实践
本章的主要内容是异常处理,实践重点:
l 异常处理的两种常用方式;
l try…catch…finally结构
程序1
创建异常
需求:主动创建一个异常并抛出;
目标:
深入了解异常的工作机制。
程序:
//: ExceptionMethods.java package com.useful.java.part2;
public class ExceptionMethods { public static void main(String[] args) { try { throw new Exception("Here's my Exception"); } catch(Exception e) { System.out.println("Caught Exception"); System.out.println( "e.getMessage(): " + e.getMessage()); System.out.println( "e.toString(): " + e.toString()); System.out.println("e.printStackTrace():"); e.printStackTrace(); } } } |
说明:
1、 try的时候,创建一个异常,没有处理,上抛了出去;
2、 catch时,抓住抛出的异常,并以多种情况显示出来;
3、 运行情况如下图所示:
程序2:
需求:继承Exception类,定义自己的Exception类。
目标:
1、 复习Exception类的使用;
2、 了解继承的基本用法。
程序:
//: Inheriting.java package com.useful.java.part3;
class MyException extends Exception { public MyException() {} public MyException(String msg) { super(msg); } }
public class Inheriting { public static void f() throws MyException { System.out.println( "Throwing MyException from f()"); throw new MyException(); } public static void g() throws MyException { System.out.println( "Throwing MyException from g()"); throw new MyException("Originated in g()"); } public static void main(String[] args) { try { f(); } catch(MyException e) { e.printStackTrace(); } try { g(); } catch(MyException e) { e.printStackTrace(); } } } |
说明:
1、 根据异常一章及本章内容,我们自定义了一个异常类;
2、 程序运行情况如下:
3、需要注意的是super的用法,另外,还有一个this。super代表父类,this代表本类。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26660100/viewspace-715822/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26660100/viewspace-715822/