java:异常的处理(try...catch...finally)和异常分类

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_24644517/article/details/83142895

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
        * 用在方法体内,跟的是异常对象名
        * 只能抛出一个异常对象名
        * 表示抛出异常,由方法体内的语句处理 

猜你喜欢

转载自blog.csdn.net/qq_24644517/article/details/83142895