RuntimeException与CheckedException

Java的异常被分为两大类:Checked异常和Runtime异常(运行时异常)。所有RuntimeException类及其子类实例被称为Runtime异常;不是RuntimeException类及其子类的异常实例则称为Checked异常。

只有Java语言提供了Checked异常,其他语言都没有提供Checked异常。Java认为Checked异常都是可以被处理(修复)的异常,所以Java程序必须显式处理Checked异常。

对于Checked异常的处理方式有两种:

(1)当前方法明确知道如何处理该异常,程序应该使用try...catch块来捕获该异常,然后对应的catch块中修补该异常。

(2)当前方法不知道如何处理这种异常,应该在定义该方法时声明抛出该异常。

Runtime异常则更加灵活,Runtime异常无须显式声明抛出,如果程序需要捕捉Runtime异常,也可以使用try...catch块来捕捉Runtime异常。

当使用throw语句自行抛出异常,如果throw语句抛出的异常是Checked异常,则该throw语句要么处于try块里,显式捕获该异常,要么放在一个带throws声明的方法中,即把该异常交给该方法的调用者处理;也就是说当出现了(不管是自行抛出的,还是系统抛出的)Checked异常,就要想办法去处理它,不能不理会它,要么显式地在try...catch块里捕获,处理它;要么把它放在一个带throws声明的方法中,把异常交给该方法的调用者处理。

如果throw语句抛出的异常是Runtime异常,则该语句无须放在try块里,也无须放在带throws声明抛出的方法中;程序既可以显式使用try...catch来捕获,并处理异常,也可以完全不处理该异常,把异常交给该方法调用者处理。(http://blog.163.com/quanquan127@126/blog/static/6884772520126394334182/)

ArithmeticException(除数为0的异常), BufferOverflowException(缓冲区上溢异常), BufferUnderflowException(缓冲区下溢异常), IndexOutOfBoundsException(出界异常), NullPointerException(空指针异常), EmptyStackException(空栈异常), IllegalArgumentException(不合法的参数异常), NegativeArraySizeException, NoSuchElementException, SecurityException, SystemException, UndeclaredThrowableException

1. java.lang.NullPointerException
  异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)
  2. java.lang.ClassNotFoundException  异常的解释是"指定的类不存在"。
  3. java.lang.ArithmeticException  这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常。
  4. java.lang.ArrayIndexOutOfBoundsException
  异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。
  5. java.lang.IllegalArgumentException
  这个异常的解释是"方法的参数错误",比如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。
  6. java.lang.IllegalAccessException
  这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常(http://www.cnblogs.com/qinqinmeiren/archive/2010/10/14/2151702.html)

转载于:https://www.cnblogs.com/HiJacky/p/5743966.html

RuntimeException与CheckedException相关推荐

  1. JAVA常见面试题之Error、RuntimeException、CheCkedException

    Java中的异常处理机制的简单原理和应用 异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间.地点.人物.情节等信息,可以用 ...

  2. 关于常见的RuntimeException

    异常机制 Java是采用面向对象的方式来处理异常,处理过程是: 1,抛出异常:在执行一个方法的时候,如果发生异常,则这个方法生成代表这个异常的一个对象,停止执行,并把这个生成的异常对象交给JRE 2, ...

  3. java异常_聊聊Java中的异常及处理

    前言 在编程中异常报错是不可避免的.特别是在学习某个语言初期,看到异常报错就抓耳挠腮,常常开玩笑说编程1分钟,改bug1小时.今天就让我们来看看什么是异常和怎么合理的处理异常吧! 异常与error介绍 ...

  4. java 故障排查_java线上服务问题排查

    1.业务日志相关 如果应用系统出现异常,一般都会在业务日志中体现 统计当天业务日志中ERROR出现数量:egrep ERROR --color logname | wc -l  ,如果错误数量过大,一 ...

  5. java 反射获取属性名和值_阿里P8架构师核心知识点整理:Java基础+spring原理+微服务+算法...

    Java基础 5.1.1. JAVA 异常分类及处理 5.1.1.1. 概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法.在这种情况下 会抛出一个封装了错误信息的对象.此时, ...

  6. Java基础—异常分类及处理

    目录 一.概念 三.异常的处理方式 四.throw 和 throws 的区别: 一.概念 如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法.在这种情况下会抛出一个封装了错误信息的对 ...

  7. java通用异常_Java常用异常整理

    填坑,整理下Java的常用异常.正确使用异常在实际编码中非常重要,但面试中的意义相对较小,因为对异常的理解和应用很难通过几句话或几行代码考查出来,不过我们至少应答出三点:异常类的继承关系.常用异常类. ...

  8. 最全最新的的Java核心知识点整理!!! 【推荐】

    前言: 想要文档版的小伙伴们可以私信我领取哦,更加清晰 一目了然 ~ Java核心知识点! 博客整理出来的稍微有点乱~ 目录 目录 -1 JVM - 19 2.1. 线程 - 20 2.2. JVM ...

  9. 西安恒智小寨java_Java常用异常整理

    你这么优秀,一定会关注我↑↑↑,对吧~ 版权信息|本文原作者"程序猿说你好",转载自人云亦云. 整理下Java的常用异常.正确使用异常在实际编码中非常重要,但面试中的意义相对较小, ...

最新文章

  1. vue 拷贝 数组_Vue实现对数组、对象的深拷贝、复制
  2. 到2026年,非洲数据中心市场规模将达到50亿美元
  3. ASP.NET CORE 微服务(简化版)实战系列-没有比这性价比再高的实战课程了
  4. 3月3 pytorch模型保存的.pt, .pth, .pkl的pytorch模型文件,只是后缀不同而已(仅此而已)
  5. 感觉文章和回复都不错,转载了---用正则表达式找出不包含连续字符串abc的单词...
  6. Java实现登录验证码功能
  7. 永久删除暴风影音服务项,去除 stormliv.exe 进程
  8. 撞库、脱库和洗库是什么意思
  9. mysql数据库增加一行_向mysql数据库的座位表添加数据
  10. 物联网应用案例:镇海智慧水务
  11. C语言石头剪刀布游戏课设
  12. pta统计字符出现次数
  13. Flutter唤醒屏幕(Android)
  14. Python学习笔记1入门+简单结构+数据类型+常用操作符
  15. 港科夜闻|香港科大冯雁教授专访:人工智能的发展不能脱离人本
  16. java基础--while循环实现存钱问题案例
  17. 手机壳定制壁纸下载小程序全过程安装搭建教程
  18. Kitti中GPS/IMU数据格式
  19. java连接.accdb_尝试通过Java 8中的JDBC-ODBC连接到.accdb文件时...
  20. 简记H2 Database内存数据踩过的坑

热门文章

  1. 基于数据挖掘的旅游推荐APP(二):主界面布局
  2. 使用Consul实现服务发现:instance-id自定义(3种方式)
  3. Dubbo 3.0 预览版解读,6到飞起~
  4. Android开发,Error: Failed to find Build Tools revision 24.0.2
  5. 为什么选择Netty作为基础通信组件?
  6. 行为型模式:责任链模式
  7. Redis:常见的面试题
  8. Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
  9. 腾讯美团爱奇艺等10+大厂面试题汇总!
  10. 疫情期间数据需求量暴增,机房需要做哪些准备?