前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >异常基础

异常基础

作者头像
用户7073689
发布2020-03-18 15:23:24
3120
发布2020-03-18 15:23:24
举报
文章被收录于专栏:青柠小鱼
1 代码中的异常

Throwable类 Java中所以异常的超类,在Java中所有的异常,错误的基类就是Throwable类。

Throwable –| Exception 异常 可以处理,代码还有拯救的可能性 –| Error 错误 GG思密达

Throwable常用方法: Constructor: Throwable(); Throwable构造方法,Throwable类对象中,存储的异常或者 错误信息为null Throwable(String message); Throwable构造方法,Throwable类对象 中,存储的异常或者错误信息为message Method: String getMessage(); 获取Throwable对象中存储的异常或者错误信息 String toString(); 返回当前异常或者错误的简要描述 void printStackTrace(); 展示错误的前因后果,【红色字体】

2. Exception和Error区别

Exception 异常,可以处置 Error 错误,不可以处置,只能避免

3. 异常处理

3.1 捕获异常

try - catch 结构 try - catch - finally 结构

格式: try { // 有可能出现异常代码 } catch (/* 对应处理的异常对象 */) { // 处理方式 }

3.2 捕获异常问题总结:
  1. 代码中从异常发生位置开始,之后的代码都不在运行
  2. 代码中有多个异常,可以使用多个catch块进行捕获操作,分门别类处理
  3. 当前情况下,只能展示异常情况,后期可以讲异常情况做成log日志文件
  4. 异常被捕获之后代码可以正常运行。
3.3 抛出异常

throw 在方法内抛出异常 throws 在【方法声明】位置,告知调用者当前方法有哪些异常抛出 声明的异常需要生成对应的文档注释

3.4 抛出异常总结:
  1. 一个代码块内,有且只能抛出一个异常
  2. 从throw位置开始,之后的代码不在运行
  3. 代码中存在使用throw抛出异常,在方法的声明位置必须告知调用者这里有什么异常
3.5 抛出和捕获的对比

捕获之后,代码可以正常运行,要保证处理之后的异常不会在导致其他问题。 例如: 用户名密码错误,不能采用捕获异常。 用户指定路径问题,也不能采用捕获异常。

抛出的确可以解决很多问题,并且可以让代码健壮性很强。到用户层面说什么都不能抛出异常。 所谓不能抛出,是指不能讲错误信息直接甩到用户脸上。

用户密码错误情况: 1. 捕获异常 2. 通过异常处理 catch将错误抛出 3. 给予用户的友好提示

3.6 RuntimeException

运行时异常: JVM在运行的过程中可以非检查异常 例如: ArrayIndexOutOfBoundException NullPointerException StringIndexOutOfBoundException ArithmeticException

代码语言:javascript
复制
这些异常在代码中如果出现,不需要代码中强制进行捕获或者抛出处理。
3.7 自定义异常

代码运行的过程中存在一定的生活化 例如: 用户名密码错误 NoGirlFriendException 没有女朋友异常

自定义异常格式: class 自定义异常类名 extends Exception { // No Fields Constructor // String Field Constructor } 自定义异常类名: 必须Exception结尾!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 代码中的异常
  • 2. Exception和Error区别
  • 3. 异常处理
    • 3.1 捕获异常
      • 3.2 捕获异常问题总结:
        • 3.3 抛出异常
          • 3.4 抛出异常总结:
            • 3.5 抛出和捕获的对比
              • 3.6 RuntimeException
                • 3.7 自定义异常
                相关产品与服务
                对象存储
                对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档