java异常笔记
java异常笔记
nodaoli异常
什么是异常?
导致程序的正常流程被中断的事件,叫做异常
异常的处理
捕获 try catch finlly
1 | import java.io.File; |
在try
中放入可能会抛出异常的代码,用catch
放入异常的处理代码
父类异常是可以catch
到子异常
1 | import java.io.File; |
多个异常既可以分开捕获,也可以一起捕获catch (FileNotFoundException | ParseException e)
无论是否出现异常,finally
中的代码都会被执行
抛出
一般是方法抛出异常,由方法的调用者捕获异常
简单来说就是:谁用谁捕获,方法只给出可能抛出的异常
throws
与throw
这两个关键字接近,不过意义不一样,有如下区别:
- throws 出现在方法声明上,而throw通常都出现在方法体内。
- throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某个异常对象。
- 两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
异常的分类
检查型异常 CheckedException
可查异常即必须进行处理的异常,要么try catch
住,要么往外抛,谁调用,谁处理,比如 FileNotFoundException
运行时异常 RuntimeException
不是必须进行try catch的异常
错误 Error
指的是系统级别的异常,通常是内存用光了
在默认设置下,一般java程序启动的时候,最大可以使用16m的内存
如例不停的给StringBuffer
追加字符,很快就把内存使用光了。抛出OutOfMemoryError
与运行时异常一样,错误也是不要求强制捕捉的
创建自定义异常
1 | class NoGirlFriendException extends Exception { |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果