java中的异常
Java中的异常有一个公共的父类Throwable ,以Throwable为父类的异常又分为error类和Exception类
error 类是jvm在运行时出现的不可预料错误,通常非常严重不能解决,如栈内存溢出
Exception类又分为RunTimeException和其他错误,RunTimeException属于运行时出错,一般是逻辑错误所导致的,如空指针异常,数组下标越界,算数运算异常,除RunTimeException以外的都属于编译时错误
异常分为自动创建异常和手动创建异常
自动创建异常
int i=1,j=0;
try {
System.out.println(i / j);
}catch (ArithmeticException e){
System.out.println(e.getMessage());
}
int[] nums=new int[1];
try {
nums[0]=1;
nums[1]=0;
int c=nums[0]/nums[1];
}catch (ArithmeticException e){
System.out.println(e.getMessage());
}catch (ArrayIndexOutOfBoundsException e){
System.out.println(e.getMessage());
}
可以抛出多个异常
手动创建异常
public class NotCreatException extends Exception{
public NotCreatException() {
}
public NotCreatException(String message) {
super(message);
}
}
public class Triangle {
private Integer a,b,c;
public Triangle(Integer a, Integer b, Integer c) throws NotCreatException{
if(a+b>c&&a+c>b&&b+c>a){
this.a = a;
this.b = b;
this.c = c;
}
else {
new NotCreatException("不能构成三角形");
}
}
}
public static void main(String[] args) {
Triangle triangle;
try {
triangle=new Triangle(1,2,3);
}catch (NotCreatException e){
System.out.println(e.getMessage());
}
}