通过继承Exception和Throwable来编写用户自己定义的异常类:
继承Exception的自定义异常类:
/**
* 可以继承Exception或者Throwable
* @author LiZhuo
*
*/
public class MyException extends Exception{
/**
*
*/
private static final long serialVersionUID = 1L;
public MyException() {
this.printStackTrace();
}
public MyException(String msg){
System.out.println("异常信息:"+msg);
this.printStackTrace();
}
public MyException(String message,Throwable cause){
System.out.println(message);
cause.printStackTrace();
}
}
测试类:
public class TestEception {
public static void getNum(int money){
try {
if(money>10000){
throw new MyException("取的超出了余额");
}
} catch (MyException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
getNum(100001);
}
}
输出:
继承Throwable的自定义异常类:
public class MyThrowable extends Throwable{
/**
*
*/
private static final long serialVersionUID = 1L;
public MyThrowable() {
this.getMessage();
this.printStackTrace();
}
public MyThrowable(String message){
this.printStackTrace();
System.out.println("异常信息为:"+message);
}
}
测试类:
public class TestThrowable {
public static void getTime(int min)throws MyThrowable{
if(min>60){
//try {
throw new MyThrowable("时间错误!");
//} catch (MyThrowable e) {
//e.printStackTrace();
//}
}else if(min<0){
//try {
throw new MyThrowable("时间错误!");
//} catch (MyThrowable e) {
//e.printStackTrace();
//}
}
}
public static void main(String[] args) {
//getTime(61);
try {
getTime('a');
} catch (MyThrowable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出: