/**(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
* pTitle: 捕获异常和实现自己的异常类/p
* pDescription: 通过继承Exception类来实现自己的异常类。并使用try-catch来捕获这个异常。/p
* pCopyright: Copyright (c) 2003/p
* pFilename: /p
* @version 1.0
*/
class MyException extends Exception {
public MyException() {}
public MyException(String msg) {
super(msg);
}
public MyException(String msg, int x) {
super(msg);
i = x;
}
public int val() { return i; }
private int i;
}
public class DemoException {
/**
*br方法说明:使用MyException类中默认的构造器
*br输入参数:
*br返回类型:
*/
public static void a() throws MyException {
System.out.println(
"Throwing MyException from a()");
throw new MyException();
}
/**
*br方法说明:使用MyException类中带信息的构造器
*br输入参数:
*br返回类型:
*/
public static void b() throws MyException {
System.out.println(
"Throwing MyException from b()");
throw new MyException("Originated in b()");
}
/**
*br方法说明:使用了MyException中有编码的构造器
*br输入参数:
*br返回类型:
*/
public static void c() throws MyException {
System.out.println(
"Throwing MyException from c()");
throw new MyException(
"Originated in c()", 47);
}
public static void main(String[] args) {
try {
a();
} catch(MyException e) {
e.getMessage();
}
try {
b();
} catch(MyException e) {
e.toString();
}
try {
c();
} catch(MyException e) {
e.printStackTrace();
System.out.println("error code: " + e.val());
}
}
} //end :)