程序中运行时出现的错误
从是否主动产生可分为:
1.java中已经预定义好的异常(ArrayIndexoutofException和nullPointerException)
2.自行定义的异常(如AgeException)
从开发者角度可分为:
1.Exception异常(程序中出现的错误)
2.Error异常(JVM错误,程序无法处理)
补充:Throwable类是Exception和Error的父类
try{
//可能发生异常的语句
}catch(异常类 异常对象){
//异常处理语句
}catch(异常类 异常对象){
//异常处理语句
}finally{
//调用try catch时一定会执行的代码,不管你在try所在的普通代码块中有没有产生异常
}
//异常处理语句可以有很多即catch{}可以续写很多次
public class ExceptionDemo1{
public static void main(String args[]){
int i=10;
int j=0;
try{
int trmp=i/j;
System.out.println("程序没有出现异常");
}catch(ArithmeticException e){
System.out.println("出现异常了: "+e);
}finally{
System.out.println("try---catch--finally操作处理完毕!!!");
}
}
}
? throws
public 返回值类型 方法名称(参数1,参数2......参数n) throws Exception{
}
public class A{
public void print() throws Exception{
int i=10;
int j=0;
int trmp=i/j;
System.out.println("程序没有出现异常");
}
}
//类A中print()方法出现的异常(运行错误)会丢给调用 类A print()方法处处理
public class ExceptionDemo1{
public static void main(String args[]){
A a=new A();
a.print();//异常在这里一定得处理,不然会报错
}
}
注意:理论上任何方法都可以抛异常,但不建议在main函数中抛异常,因为这个时候它会把异常交给jvm处理,得不到任何有效的异常信息了.
throw new Exception("自己抛的异常");
//抛出异常时直接抛出异常的实例化对象即可
//这个新抛出的异常也需要处理
RuntimeException和Exception的区别,请列举几个常见的RunTimeException
(1)RuntimeException是Exception的子类
(2)Exception定义了必须处理的异常,而RunTimeException定义的异常可以选择型处理
(3)常见的RunTimeException:
? a. NumberFormatException、
? b. ClassCastException、
? c. NullPointerException
? d. ArithmeticException、
? e. ArrayIndexOutOfBoundsException
原文:https://www.cnblogs.com/SSSzhanglingzhi/p/14063720.html