1.JVM默认是如何处理异常的
* main函数收到这个问题时,有两种处理方式:
* a:自己将该问题处理,然后继续运行
* b:自己没有针对的处理方式,只有交给调用main的jvm来处理
* jvm有一个默认的异常处理机制,就将该异常进行处理.
* 并将该异常的名称,异常的信息.异常出现的位置打印在了控制台上,同时将程序停止运行
2.异常处理的两种方式
* 2.1:try…catch…finally
* try catch
* try catch finally
* try finally
*2.2:throws
try:用来检测异常
catch:用来捕获异常
finally:释放资源
2.1-try...catch使用方式-案列演示
public class Demo1_Exception {
public static void main(String[] args) {
Demo i=new Demo();
try {
int x=i.div(10, 0);
System.out.println(x);
}catch(ArithmeticException a) {//ArithmeticException a=new ArithmeticException();接收异常对象,进行语句输出
System.out.println("出错了,除数为0了");
}
}
}
class Demo{
public int div(int a,int b) {//传入参数
return a/b;//当除数为0时,抛出ArithmeticException 异常,返回一个异常对象
}
}
运行结果:
出错了,除数为0了
2.2-try…catch…finally
* 1:finally的特点
* 被finally控制的语句体一定会执行
* 特殊情况:在执行到finally之前jvm退出了(比如System.exit(0))
* 2:finally的作用
* 用于释放资源,在IO流操作和数据库操作中会见到
* 3:案例演示
* finally关键字的特点及作用
3.:Throwable的几个常见方法
* 3.1:getMessage()
* 获取异常信息,返回字符串。
* 3.2:toString()
* 获取异常类名和异常信息,返回字符串。
* 3.3:printStackTrace()
* 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
案列演示:
4.:throw的概述
* 在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。
* 4.1:throws和throw的区别
* 1:throws
* 用在方法声明后面,跟的是异常类名
* 可以跟多个异常类名,用逗号隔开
* 表示抛出异常,由该方法的调用者来处理
* 2:throw
* 用在方法体内,跟的是异常对象名
* 只能抛出一个异常对象名
* 表示抛出异常,由方法体内的语句处理