本章的测试代码存放在 com.j2ee110.csdn.leader.exception包路径下面
大家的练习代码存放在 com.j2ee110.csdn.leader.姓名标识.exception包路径下面
什么是java异常
很多和java同级别的语言比如c#都有异常体系,很多以前没有异常功能的语言比如php,在其后续版本中也加入了异常,因此异常应该是一门现代编程语言必备的功能
其实在这些编程语言中异常是用来进行错误提示的,而且是对运行时候的错误进行提示的。在程序运行时候可能会遇到一些错误,这些错误可以通过程序处理,从而避免程序被打断。
说句实话,我其实不敢发表关于java异常相关的看法,因为关于java异常网上的争论实在是太多了,就连BRUCE ECKEL(THINKING IN JAVA 的作者)这样的大牛也加入进来讨论这个问题,我如果发表点看法,可能会被网上的“砖家”们骂死,但是既然我们本次训练营是关于java系统的学习,而java异常又那么重要,那么我还是和大家一起分享一下我对java异常的一些看法,这些看法是我在工作中经常要用到的。
异常的类别
java中的异常分为“检查异常”和“非检查异常”, 下面我来分类分析
“检查异常” 学名 Checked Exception 定义:扩展了java.lang.Exception的异常称为checked exceptions, 编译器要求这些异常必须被捕获或者重新抛出
“非检查异常” Unchecked Exception 定义:扩展了java.lang.RuntimeException的异常称为unchecked exceptions, 它们不是必须捕获的.
关于Checked 和 Unchecked 我就讲这么多吧,网上有很多讨论,都是关于如何用的,我这里不像下一个到底谁好的定义,但是我只想跟大家一起讨论一下在项目中如何用
异常的应用场景
我觉得java异常在具体的应用中通常会有这两方面:1、熟悉JDK提供的异常,在遇到这些异常的时候要能认出他们
2、需要在应用程序中定义自己的异常。
自定义异常
在自定义的异常中我要讨论来两个问题,第一是如何定义异常,的第二是,如何抛出异常
com.j2ee110.csdn.leader.exception.CheckedException 定义了一个检查类型的异常
com.j2ee110.csdn.leader.exception.UncheckedException 定义了一个非检查型的异常
com.j2ee110.csdn.leader.exception.ExceptionThrowAuthor 定义了两个方法,这个两个方法分别抛出检查异常和非检查异常
异常的捕获和处理
com.j2ee110.csdn.leader.exception.ExceptionMain 演示如何捕获并处理异常
关于java异常最基本的就到暂时这些吧,其实异常一个比较重要的应用是异常链,但是异常链通常结合具体的项目来说明效果更好,所以我在第二轮或者第三轮在跟大家分享吧。
课后练习
今天的课后练习很简单,大家为自己创建一个检查型异常和一个非检查型异常,注意这个两个异常我在后面肯定是要用到的。
暑期java基础巩固训练营开始
java基础巩固训练营 简介
java基础巩固训练营【第一轮】(一)项目环境和规范
java基础巩固训练营【第一轮】(二)JAVA基础
java基础巩固训练营【第一轮】(三) 编写、编译、运行
java基础巩固训练营【第一轮】(四) 利器(IDE工具)
java基础巩固训练营【第一轮】(五) 基本数据类型
java基础巩固训练营【第一轮】(六) 面向对象的JAVA
java基础巩固训练营【第一轮】(七) 数据结构中的java
java基础巩固训练营【第一轮】(八) 文件读写
java基础巩固训练营【第一轮】(九) 用java通信
java基础巩固训练营【第一轮】(十) 多线程
java基础巩固训练营【第一轮】(十一) 直面错误--java异常
java基础巩固训练营【第一轮】(十二) 我们一起来找茬
ava基础巩固训练营【第一轮】(十三) java桌面应用
java基础巩固训练营【第一轮】(十四) 大家一起做项目
如果您对我的文章感兴趣的话,请点击这里加我为好友,让我们一起进步
http://student.youkuaiyun.com/invite.php?u=106708&c=2383a3846076c876