在java中,异常分为两种,运行时异常(也就是uncheckException)和已检查异常checkException,运行时异常包括平常遇到的各种异常,如空指针异常,数据格式异常等一系列异常,这种异常是可以不捕获的,可通过throws抛出异常,交给别的代码或者JAVA虚拟机来完成。但是checkException是必须要处理的,也就是不能抛出,必须通过try-catch来完成,不处理的话是不能进行编译的。但是checkException不是一个具体的异常类型,它只是一个概念。所以你判断一个异常是已检查异常还是未检查异常,只需要通过抛出这个异常就可以知道了。

当程序出现异常的时候,虚拟机会帮忙产生一个异常对象...以下的类都是JDK提供的...


其中RuntimeException +Error 和其子类都是属于 uncheckexception

Exception类中除了 RuntimeException之外的类 都是属于 checkexception
如图可以看出,User类的setAge方法抛出的是一个运行时RuntimeException,在方法后面不需要显式的throws,在客户类调用时,也不需要try/catch捕获处理。
而CheckUser类的setAge方法则是抛出一个Exception(属于checkException),在setAge方法后面需要显式的抛出异常,或者是在Exception定义后面显示的用try/catch来捕获并处理,在客户类调用时,也需要显式的用try/catch捕获处理,如果不处理的话就需要显示在客户类调用其CheckUser对象的方法后面显式的抛出该异常,交由上级客户类捕获或者继续向上抛出。

java中CheckException和UnCheckException的区别相关推荐

  1. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  2. java中ArrayList和LinkedList的区别

    首先来看ArrayList和LinkedList的集成类和接口的区别.// lang java public class ArrayList<E> extends AbstractList ...

  3. java中Runnable和Callable的区别

    文章目录 运行机制 返回值的不同 Exception处理 java中Runnable和Callable的区别 在java的多线程开发中Runnable一直以来都是多线程的核心,而Callable是ja ...

  4. java中wait和sleep的区别

    文章目录 Wait和sleep的区别 唤醒wait和sleep java中wait和sleep的区别 在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别.并讨论一下怎么使用 ...

  5. java throw与throws_基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

  6. Java中重载和复写的区别

    Java中重载和复写的区别 重载(overload) 复写(override) 区别和联系 重载(overload) 函数重载的最突出的例子就是类的构造函数,用户定义一个对象时可能会提供多种参数组合: ...

  7. Java中equals()方法和==的区别分析

    Java中equals方法和==的区别分析 equals(Object obj)方法,将对象与传入的obj进行比较,相等返回true,否则返回false.equals方法和"==" ...

  8. java is instance of_详谈Java中instanceof和isInstance的区别

    一次性搞定instanceof和isInstance,instanceof和isInstance长的非常像,用法也很类似,先看看这两个的用法: obj.instanceof(class) 也就是说这个 ...

  9. throws java_基于Java中throw和throws的区别(详解)

    系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...

  10. Java中notify和notifyAll的区别 - 何时以及如何使用

    Java  notify   vs notifyAll notify和notifyAll方法之间有什么区别是棘手的Java问题之一! Condition 是个什么玩意? 提几个问题,从问题中去了解去学 ...

最新文章

  1. 计算机二级无法完成初始化,2012年计算机等级考试二级C语言常见问题:声明和初始化...
  2. Linux磁盘挂载和docker安装
  3. MySQL数据库的优化
  4. mac搭建本地svn
  5. 直方图均衡 视觉显著_计算机视觉一些项目实战技术(续)
  6. Idea(二) 解决IDEA卡顿问题及相关基本配置
  7. SqlPlus中退格键和方向键的设置
  8. js date 加一天_需要知道的JS的日期的知识,都在这了
  9. crm2013js弹出窗口
  10. linux mac tree 命令 总结
  11. 读书笔记-人月神话 11
  12. matlab中各种数据类型及转换
  13. C++异常机制的实现方式和开销分析
  14. docker如何使用阿里加速器的方法
  15. wps html编辑表格,手机wps中怎样编辑表格?手机wps编辑表格的方法
  16. 网络渗透作业202105110124郭静
  17. [转] 明年,你还爱我吗?
  18. BUUCTF [HITCON 2016] Leaking
  19. Deepin 15.11下载安装新版 QQ Linux
  20. java验证手机号码的工具类-截止2022年中国大陆四家运营商以及虚拟运营商手机号码校验

热门文章

  1. 计算机应用专业配置标准,计算机应用专业技能抽查考试标准.doc
  2. 高效能人士的七个习惯读后感与总结概括-(第二章)
  3. Rust 智能指针(二)
  4. iOS:如何实现在文字上添加拼音
  5. 考研失利,找工作感悟
  6. 中国石油大学《大学语文》在线考试
  7. 微信公众平台、微信开放平台、微信商户平台的区别
  8. mysql 左连接写法_mysql左连接复杂正确写法
  9. 手动安装virtualbox增强功能
  10. 不断改进的FUP TC20H 台式多用途高速冷冻离心机