栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础异常总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础异常总结

Java基础异常总结
  • 分类
    • 异常类(Exception)
    • 错误类(Error)
  • 涉及关键字
  • 处理
    • 关注Checked异常:
  • Throwable的常用方法
  • 自定义异常(todo)
    • 步骤
  • 相关面试题:
    • 1.谈谈你Java异常处理机制的理解?
    • 2.try、catch、finally、throw、throws关键字?
    • 3.final、finally、finalize 的区别?
    • 4.最常见的RuntimeException?
    • 5.try-catch-finally-return 执行描述

分类

异常类(Exception)
  • Runtime异常
    程序员自身错误导致。如NullException
  • Checked异常
    可以被发现和处理的异常,程序必须显示处理,否则无法编译通过。如IOException
错误类(Error)
  • 错误类(Error)
    一般是JVM相关问题,例如系统崩溃、虚拟机错误等
涉及关键字
  • try:执行可能产生异常的代码;
  • catch:捕获异常;
  • finally:无论是否发生异常,代码总被执行(正常情况下);
  • throw:异常生成阶段,手动抛出异常对象
  • throws声明方法可能要抛出的各种异常类
处理 关注Checked异常:
  • try…catch捕获异常
  • throw手动抛出异常
  • throws声明异常
Throwable的常用方法
  • getMessage() 返回异常的消息信息
  • toString() 返回此 throwable 的简短描述
  • printStackTrace() 获取异常类名和异常信息,以及异常出现位置
自定义异常(todo) 步骤
  • 创建自定义异常类;
  • 在方法中通过throw关键字抛出异常对象;
  • 在方法声明处通过throws,指明要跑抛出给方法调用者异常,继续进行下一步操作。
  • 再出现异常方法的调用者中捕获并处理异常
相关面试题: 1.谈谈你Java异常处理机制的理解? 2.try、catch、finally、throw、throws关键字? 3.final、finally、finalize 的区别?
  • final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。
  • finally:异常处理语句结构的一部分,表示总是执行。
  • finalize:Object 类的一个方法,所以Java对象都有这个方法,当某Java对象没有更多的引用指向的时候,会被垃圾回收器回收,该对象被回收之前,由垃圾回收器来负责调用此方法,通常在该方法中进行回收前的准备工作。该方法更像是一个对象生命周期的临终方法,当该方法被系统调用则代表该对象即将“死亡”,但是需要注意的是,我们主动行为上去调用该方法并不会导致该对象“死亡”,这是一个被动的方法(其实就是回调方法),不需要我们调用。
4.最常见的RuntimeException?
  • NullPointerException 空指针异常;出现原因:调用了未经初始化的对象或者是不存在的对象
  • ClassCastException 数据类型转换异常
  • ClassNotFoundException 指定的类找不到;出现原因:类的名称和路径加载错误;通常都是程序试图通过字符串来加载某个类时可能引发异常
  • NoSuchMethodException 方法不存在异常
  • NumberFormatException 字符串转换为数字异常;出现原因:字符型数据中包含非数字型字符
  • IndexOutOfBoundsException 数组角标越界异常,常见于操作数组对象时发生
  • IllegalArgumentException 方法传递参数错误
  • NoClassDefFoundException 未找到类定义错误
  • SQLException,常见于操作数据库时的 SQL 语句错误
  • InstantiationException 实例化异常
5.try-catch-finally-return 执行描述
  • return是一个函数执行结束的标志
  • 当一个函数执行到return语句时就会立即结束当前函数的调用栈而返回到上一级函数中
  • 而finally块无论是否发生异常都有执行
  • 所以执行finally块中的代码也要在return语句前执行
  • 所以在try块中的return语句执行前要先执行finally块中的代码
  • 如果finally块中也有return语句,那么它将会覆盖掉try块或catch块中return语句而得到执行
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号