package 异常;
/*
* 自定义异常
* 继承exception 原因 :
* 异常体系有一个特点,异常类和异常对象都要被抛出,因为他们都具备可抛性
* 而 这个可抛性是 throwable体系中的独有特点
* 只有还这个体系中的类和对象才可以被 throws 和 throw 操作
*
* throw 用在函数内,后面跟一或多个函数类
*
* throw 用在函数上,后面跟函数对象
*
* 注 runtimeexception 异常 和它子类的异常 抛出时不需要 try cathc 或者声明
*/
public class TestException {
public static void main(String[] args) {
try {
new Demo().div(2, 1);
} catch (OwnException e) {
e.printStackTrace();
}
}
}
/**
* 抛出自定义异常后 对应的方法要么抛出该异常 要么进行 try catch 操作
*/
class Demo {
void div(int a, int b) throws OwnException {
if (b < 0) {
throw new OwnException("wrong");
}
if(b>0){
throw new RuntimeException();
}
}
}
// 父类已经把异常信息的 操作都完成了,子类只需要在构造时将异常信息通过 super传给父类就可以了
class OwnException extends Exception {
// private String msg;
OwnException(String msg) {
super(msg);
}
// 父类已经有了这个方法 不需要在实现
/*
* public String getMessage(){ return msg; }
*/
}
/*
* 自定义异常
* 继承exception 原因 :
* 异常体系有一个特点,异常类和异常对象都要被抛出,因为他们都具备可抛性
* 而 这个可抛性是 throwable体系中的独有特点
* 只有还这个体系中的类和对象才可以被 throws 和 throw 操作
*
* throw 用在函数内,后面跟一或多个函数类
*
* throw 用在函数上,后面跟函数对象
*
* 注 runtimeexception 异常 和它子类的异常 抛出时不需要 try cathc 或者声明
*/
public class TestException {
public static void main(String[] args) {
try {
new Demo().div(2, 1);
} catch (OwnException e) {
e.printStackTrace();
}
}
}
/**
* 抛出自定义异常后 对应的方法要么抛出该异常 要么进行 try catch 操作
*/
class Demo {
void div(int a, int b) throws OwnException {
if (b < 0) {
throw new OwnException("wrong");
}
if(b>0){
throw new RuntimeException();
}
}
}
// 父类已经把异常信息的 操作都完成了,子类只需要在构造时将异常信息通过 super传给父类就可以了
class OwnException extends Exception {
// private String msg;
OwnException(String msg) {
super(msg);
}
// 父类已经有了这个方法 不需要在实现
/*
* public String getMessage(){ return msg; }
*/
}