用户自定义异常都应该继承Exception基类;如果希望自定义Runtime异常,则应该继
承RuntimeException基类。定义异常类时通常需要提供两个构造器:一个是无参数的
构造器;另一个是带个字符串参数的构造器,这个字符串将作为该异常对象的描述信
息
public static void main(String[] args) {
try {
shang(5,0);
} catch (DivideNegativeException e) {//捕获自定义异常
e.printStackTrace();
} catch (DivideZeroException e) {//捕获自定义异常
e.printStackTrace();
}
}
public static int shang(int x, int y)
throws DivideNegativeException, DivideZeroException {
if (y < 0) {
throw new DivideNegativeException("您输入的除数是" + y
+ ", 除数不能为负数!");// 抛出自定义DivideNegativeException异常
}
if (y == 0) {
throw new DivideZeroException("您输入的除数是" + y
+ ", 除数不能为 0!"); // 抛出自定义DivideZeroException异常
}
int m = x / y;
return m;
}
Class自定义除0异常
class DivideZeroException extends Exception {
private static final long serialVersionUID = 1L;
// 1、提供一个无参构造器
public DivideZeroException() {
}
// 2、带一个字符串参数的构造器
public DivideZeroException(String msg) {
super(msg);
// System.out.println("处理异常");
}
}
Class自定义除负数异常
class DivideNegativeException extends Exception {
private static final long serialVersionUID = 1L;
public DivideNegativeException() {
}
public DivideNegativeException(String msg) {
super(msg);
}
}