Error(错误)和Exception(异常)
Error由JVM产生抛出的;接触最多的是Exception,他是由于程序抒写有问题抛出
运行时异常(别名:非受检异常)是程序未检测出来的异常,这种错误一般是逻辑上的错误引起的。例如:
非运行时异常(别名:受检异常):从语法角度上必须解决的异常,如果不处理编译不通过。例如:
Thorwable:所有异常的父类
异常的解决方案:
抛出异常和解决异常
抛出异常:
throws:向外抛出异常,让调用者去解决这个异常
调用者可以选择使用try-catch-finally去解决问题,或者也可以直接抛出
throws:可以抛出多个异常,但是也可以直接抛出一个大异常后Exception
public static void run() throws ClassNotFoundException{
Class clazz = Class.forName("agent");
}
解决异常:
- try:尝试执行,如果执行成功那么就不会执行catch中的代码,如果执行失败就会执行catch中的代码
- try-catch:如果我们try代码块当中的代码执行失败,不会影响后边的代码执行
- catch(Exception e) ()里面写的是我们当前索要抛出异常的类型,如果不知道代码要抛出什么异常,直接写Exception
- finally:try-catch 代码块中一定要执行的代码,一般用来做资源关闭
public class Test {
public static void main(String[] args) {
try { int a = 10/0;
}catch(Exception e) { e.printStackTrace();
}finally{ }
System.out.println("+++++++++");
}
}
错误不能被以上两种方法解决
自定义异常(throw)
public class Test {
public static void main(String[] args) throws Exception {
run(15);
}
public static void run(int a) throws Exception{
if(a>10) { throw new Exception("你给我的值大于10");
}
}
}