Error:严重问题,不需要处理
Exception:异常类,它表示程序本身可以处理的问题
- RuntimeException:编译期是不检查的,出现问题后,需要我们回来修改代码
- 非RuntimeException:编译器就必须处理,否则程序不能通过编译,就更不能正常运行了
JVM默认处理方案
- 返回异常名称、异常原因和异常出现的位置
- 终止程序
Try catch
- 返回异常继续执行
- getMessage()\toString()\printStackTrace()
编译时异常\运行时异常
编译出错,标红
运行出错,抛出异常
自定义异常
package Exception;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) throws ScoreException {
Scanner sc=new Scanner(System.in);
System.out.println("请输入");
int score=sc.nextInt();
Teacher t=new Teacher();
t.checkScore(score);
}
}
package Exception;
public class Teacher {
public void checkScore(int score) throws ScoreException {
if (score < 0 || score > 100) {
//throw new ScoreException();
throw new ScoreException("0-100有效");
} else {
System.out.println("分数正常");
}
}
}
package Exception;
public class ScoreException extends Exception{
public ScoreException(){}
public ScoreException(String message){
super(message);
}
}