自定义异常可以继承运行时异常:
package com.pyk.xl;
import java.util.*;
public class MyException extends RuntimeException{//继承运行时异常
static final long serialVersionUID=-7324232323L;
//空参构造器
public MyException() {
}
//有参构造器
public MyException(String msg) {
super(msg);
}
}
public void setSex(String sex) throws Exception{
if(sex.equals("男")||sex.equals("女")) {
this.sex=sex;
}
else {
//运行时异常
throw new MyException("性别不对");
}
}
也可以继承检查时异常:
package com.pyk.xl;
import java.util.*;
public class MyException extends Exception{//继承检查性异常
static final long serialVersionUID=-7324232323L;
//空参构造器
public MyException() {
}
//有参构造器
public MyException(String msg) {
super(msg);
}
}
public void setSex(String sex) {
if(sex.equals("男")||sex.equals("女")) {
this.sex=sex;
}
else {
//制造检查异常
try {
throw new Exception();
}catch(Exception e){
e.printStackTrace();
}
throw new MyException();
}
}
如果继承的是运行时异常:那么在使用的时候无需额外处理
如果继承的是检查时异常:那么使用的时候需要try-catch捕获,或者throws向上抛