博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常(二):Checked异常和Runtime异常体系
阅读量:6933 次
发布时间:2019-06-27

本文共 775 字,大约阅读时间需要 2 分钟。

hot3.png

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领域是一个备受争论的问题。

转载于:https://my.oschina.net/u/2914561/blog/827426

你可能感兴趣的文章
NB-IOT技术以及物联网安全问题简述
查看>>
有关交换机的关键参数:背板带宽、交换容量、包转发率、线速等概念的解释...
查看>>
志不可不高,志不高,则同流合污,无足有为矣;心不可太大,心太大,则舍近图远,难期有成矣。...
查看>>
BeautifulSoup文档(中文&英文)
查看>>
年度最佳冷笑话
查看>>
大数据TensorFlowOnSpark安装
查看>>
IP路由器技术以及IP电话的关键技术分析
查看>>
sed常用
查看>>
telnet smtp
查看>>
【cocos2d-x从c++到js】14:注册函数
查看>>
servlet详解
查看>>
1月全球域名总量统计排名TOP20 中国降至第四位
查看>>
Zabbix 之自定义Key
查看>>
我的友情链接
查看>>
好程序员分享24个canvas基础知识小结
查看>>
centos学习笔记-1.启动
查看>>
GIT 传输协议实现
查看>>
Linux crontab 详解
查看>>
我的友情链接
查看>>
如何用Powershell脚本实现自动移除离职用户的所属组并保存日志
查看>>