文档章节

java中异常的一些自己的理解

 程序羊
发布于 2017/05/06 16:52
字数 559
阅读 15
收藏 0

java中,有“异常”和“错误”之说,异常我们可以自己处理,而错误我们无法自己处理。

在日常开发过程中,异常(Exception)和错误(Error)都是我们不愿意看到的,但是有一些异常,我们可以利用它来传递信息,这说明异常也不是一无是处,我们可以通过自己的处理让它变得有意义,而错误,是java虚拟机运行时发生的错误,我们无法处理,比如内存溢出

Exception和Error都继承了一个类,Throwable

* @author  Frank Yellin
 * @see     java.lang.Error
 * @jls 11.2 Compile-Time Checking of Exceptions
 * @since   JDK1.0
 */
public class Exception extends Throwable {
* @author  Frank Yellin
 * @see     java.lang.ThreadDeath
 * @jls 11.2 Compile-Time Checking of Exceptions
 * @since   JDK1.0
 */
public class Error extends Throwable {

这篇文章,我们主要来说Exception

Exception是需要我们处理的异常(所有的Exception及其子类,我们都需要处理)

Exception的子类分为两大类

检查异常 和  不检查异常

不检查异常,主要为RuntimeException,也可以称为运行时异常,它的特点是:一般是由程序逻辑错误所引起的,比如常见的NullPointException、数组越界异常、除数为0异常等,这些都是逻辑问题引起的,这种异常我们不是必须得try catch或者throw,因为我们根本不知道它什么时候会发生(逻辑太混乱)

检查异常,就是Exception子类中除了RuntimeExcetion之外的其他子类,比如IOExceptionSQLException、以及自定义的异常,也称为编译异常,它的特点是:我们几乎可以确定在什么地方可能出现这种异常,而且,java编译器会在编译时就提示,我们必须用try catch 或者 throws 来处理,否则编译不通过。这类异常比较常见的有IOException的子类,FileNotFoundExcetion等等。这种异常不是程序逻辑引起的,而是外部不可控的原因,比如文件找不到,或者数据库连接失败,sql语法有问题等等,所以java工程师也是考虑到这种不可控的原因,我们必须处理这种异常,也叫防患于未然吧,哈哈

 

 

 

© 著作权归作者所有

粉丝 4
博文 58
码字总数 19536
作品 0
朝阳
程序员
私信 提问
你必须掌握的 21 个 Java 核心技术!(干货)

点击上方“java进阶架构师”,选择右上角“置顶公众号” 20大进阶架构专题每日送达 51闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘复盘。而写这篇文章的目的是想...

Java进阶架构师
05/03
0
0
云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍

本文带大家简单理解阿里巴巴Java开发手册中的规约内容以及P3C项目,可以帮助开发者扫描出所有潜在的代码隐患。在中间也聊了一些对于不同语言设计的理解,如何去看待语言的设计,其实是我们去...

阿里云云栖社区
2018/05/04
0
0
PMD 6.4.0 发布,支持 Java 10 局部变量类型推断

PMD 6.4.0 发布了,这是一个小的更新版本,带来了一些新特性和 bug 修复。 值得关注的大变动是: 支持 Java 10,Java 10 中引入的局部变量类型推断已经能够被 PMD 理解。 支持类型解析,现在...

h4cd
2018/05/30
539
0
Java基础入门(三)- 阿里巴巴Java开发手册介绍

本文带大家简单理解阿里巴巴Java开发手册中的规约内容以及P3C项目,可以帮助开发者扫描出所有潜在的代码隐患。在中间也聊了一些对于不同语言设计的理解,如何去看待语言的设计,其实是我们去...

mongolguier
2018/05/03
0
0
异常

标准异常的层次结构 Java标准异常的层次结构代表的分类绝对是一个败笔。因为所有的异常对象都是在运行时抛出的,没听说过有什么编译期异常。因此RuntimeException类代表的实际上是逻辑错误导...

长平狐
2012/08/28
145
0

没有更多内容

加载失败,请刷新页面

加载更多

Tedis:基于 TiKV 构建的 NoSQL 数据库

作者介绍: 陈东明,饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及饿了么基础架构研发工作。曾任百度架构师,负责百度即时通讯产品的架构设计。具有丰富的大规模系统构 ...

TiDB
24分钟前
0
0
linux命令

ls命令是linux下最常用的命令。ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单。如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件...

WinkJie
31分钟前
0
0
你需要的物流运输类报表,这里都有

你需要的物流运输类报表,都在这里 葡萄城报表模板库是一款免费的报表制作、学习和参考工具,包含了超过 200 张高质量报表模板,涵盖了 16 大行业和 50 多种报表类型,为 30 余万报表开发者提...

葡萄城技术团队
38分钟前
1
0
像Java SE一样编写Java EE(ddd探索)

今天主要改写昨天的组合模式成Web系统。 容器接口为 public interface TreeProduct { /** * 展示所有产品 * @return */ List<TreeProduct> allProducts();...

算法之名
39分钟前
0
0
Django Model 模型建立

Django Model 模型 Django Model层是Django的数据模型层,每一个Model类就是数据库中的一张表; 我们需要注意下面几点: model一般都是定义在不同的APP的models.py模块文件中,可以是一个,也...

彩色泡泡糖
48分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部