JavaSE-异常
温馨提示:
本文最后更新于 2024年07月21日,已超过 272 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
- 异常是什么?
- 异常是指程序在运行时,不能正常的运行,出现了错误,这就是出现了异常。
- 异常可分为哪几类?
- 编译时异常:一般是指语法错误,可以通过编译器的提示加以修正。
- 运行时异常:
- 运行错误:如数组下标越界,除数为0等;
- 逻辑错误:如年龄超过200岁,小于0岁等。
- 产生异常后的反应:
- 发生异常的部分产生系统定义的错误信息;
- 程序意外终止,并将控制权返回操作系统;
- 程序中所有分配的资源的状态保持不变,这样将会导致资源泄露。
- 所以,我们必须对有可能产生的异常进行处理。
异常处理机制
try{ 可能发生异常的代码; }catch(异常类型 对象名){ 可能发生异常的代码; }catch(异常类型 对象名){ 发生异常的处理方式; }finally{ }
try块中放入可能会出现异常的代码
catch块负责捕获异常,catch可以使用多个,但是必须上面的放子类,下面放父类
finally块无论是否发生异常都会执行,一般用于关闭系统资源(关闭资源文件,关闭流)。
异常的层级结构:
思考题:
class TestException{ public static void main(String[] args){ System.out.println("[main]:" + fun(5));//打印[main]:5 } public static int fun(int a){ int s = 3; try{ a = a/0; s++; }catch(Exception e){ s = s+2; System.out.println("[catch]s=" + s);//打印[catch]s=5 return s; }finally{ s = s*2; System.out.println("[finally]s=" + s);//打印[finally]s=10 } return s; } }
- 控制台输出:
打印[catch]s=5 打印[finally]s=10 打印[main]:5
- 控制台输出:
- throw 抛出去,抛弃,抛出单个异常,一般与if条件结合使用,表示遇到某种状况的时候抛出异常对象
- throws 可以同时抛出多个异常,一般与方法结合使用,调用此方法要么try-catch处理,要么继续抛出,抛出的异常不能低于方法声明时的异常。
- 如何自定义异常
class AgeException extends RuntimeException{ public AgeException(){ super("年龄非法!年龄不能大于150岁,也不能小于0岁。"); } }
正文到此结束
- 本文标签: Java
- 本文链接: https://fxyh.top/article/18
- 版权声明: 本文由fxyh原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权