文档章节

异常(二):Checked异常和Runtime异常体系

shamgod_code
 shamgod_code
发布于 2017/01/18 22:50
字数 496
阅读 37
收藏 0

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

只有Java语言提供了Checked异常,其他语言都没有提供Checked异常。Java认为Checked异常都是可以被处理(修复)的异常,所以Java程序必须显式处理Checked异常。如果程序没有处理Checked异常,该程序在编译时就会发生错误,无法通过编译。

Checked异常体现了Java的设计哲学---没有完善错误处理的代码根本就不会被执行

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

  1. 当前方法明确知道如何处理该异常,程序应该使用try...catch块来捕获该异常,然后在对应的catch块中修复该异常。
  2. 当前方法不知道如何处理这种异常,应该在定义该方法时声明抛出该异常。

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

附录:只有Java语言提供了Checked异常,Checked异常体现了Java的严谨性,它要求程序员必须注意该异常---要么显式声明抛出,要么显式捕获并处理它,总之不允许对Checked异常不闻不问。这是一种非常严谨的设计哲学,可以增加程序的健壮性。问题是大部分的方法总是不能明确地知道如何处理异常,因此只能声明抛出该异常,而这种情况又是如此普遍,所以Checked异常降低了程序开发的生产率和代码的执行效率,关于Checked异常的优劣,在Java领域是一个备受争论的问题。

© 著作权归作者所有

shamgod_code
粉丝 5
博文 82
码字总数 31063
作品 0
杭州
私信 提问
《疯狂Java讲义》学习笔记(十)异常处理

0、Java的异常体系 1、异常概述 异常机制已经成为判断一门编程语言是否成熟的标准,目前主流的编程语言都提供了成熟的异常机制,增加了异常处理机制后的程序有更好的容错性,更加健壮 Java的...

fairy1674
2018/11/22
11
0
【Java】疯狂Java基础(三)——异常处理

一、前言 写代码的时候,异常处理是必不可少的。对异常处理的一些了解还是应该具备的,下面小编就从java的异常方面来说说 二、异常处理机制 使用try … catch 捕获异常 java 的异常机制主要用...

kisscatforever
2018/03/30
0
0
异常相关概念

[x] Error 和 Exception有什么区别 [x] 什么是受检查的异常,什么是运行时异常 运行时异常与一般异常有何异同 [ ] 什么是异常链 [x] throw 和 throws 有什么区别? [ ] 简述一个你最常见到的...

AmorFatiYJ
2017/12/22
0
0
Throwable、Error、Exception、RuntimeException 区别 联系

1.Throwable 类是 Java 语言中所有错误或异常的超类。它的两个子类是Error和Exception; 2.Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都...

hanzhankang
2014/01/24
8.5K
2
Transactional 事务回滚 分析

Spring的AOP事务管理默认是针对unchecked exception回滚(运行期异常,Runtime Exception)。   unchecked ,就是不用手工写try catch的exception   Exception作为基类,下面还分checked e...

ikilun
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
35分钟前
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
8
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
78
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部