《Java从入门到放弃》JavaSE入门篇:异常
2017-09-13 12:09
871 查看
异常!!!看看生活中的异常例子:
![](https://s4.51cto.com/wyfs02/M02/06/74/wKiom1m4oQqxKdrbAAFGwKziKVg319.png)
![](https://s2.51cto.com/wyfs02/M01/A5/25/wKioL1m4oOLjWr47AAFsu0bBQpY688.png)
正常情况下,从家到公司上班,只需要20分钟!但如果在路上碰到堵车或修路或车突然自燃等问题,那就没办法正常去上班了。其中堵车或修路或车突然自燃等问题就属于异常。
![](https://s4.51cto.com/wyfs02/M00/06/75/wKiom1m4o5-z165XAAF7me8U_-I750.png)
碰到异常,就需要处理,不然就只能中断上班了。
在Java程序中的异常表示什么意思呢?
Java中的错误分为两类:错误(Error)和异常(Exception)
错误一般都是在编译前IDE就能发现并提示,例如非要给整型变量赋一个超大的数值:
![](https://s2.51cto.com/wyfs02/M01/06/75/wKiom1m4pVzyXurKAAAobEQWUQQ110.png)
这就是一个典型的Error。
程序在运行时出现的问题,就叫异常!!!如果在编程时不考虑到对这些异常的处理,当出现异常时,程序就会停止。例如下面示例中的除0错误:
这段代码在编译时是没有任何问题的,但在运行时输入0就会提示有异常:
![](https://s2.51cto.com/wyfs02/M01/A5/25/wKioL1m4pwuidY2IAAA-PgWQvnA448.png)
出现错误很好解决,在编码环节改正确就OK了,但有的时候是否出现异常就不是开发者能控制的(如上例),所以开发者只能预判哪些地方有可能出现异常,提前做好处理。
结果:
![](https://s2.51cto.com/wyfs02/M00/A5/26/wKioL1m4p7rjSZnpAAAnjFGsyE4083.png)
可以发现结果中不再出现异常的信息,而且换成了我们自己的提示信息。
就跟下面两个图的区别一下,如果异常直接出现在用户面前,用户很有可能就再也不用你的程序了,而如果给个提示,则用户有可能会继续使用。
![](https://s1.51cto.com/wyfs02/M01/06/75/wKiom1m4qLjC22vWAAB1TJVypJM826.jpg)
![](https://s4.51cto.com/wyfs02/M00/06/75/wKiom1m4qLmAIaj9AACVLI00dqo347.jpg)
异常的概念就介绍完毕啦!!!
![](http://img.baidu.com/hi/jx2/j_0019.gif)
,接下来看看Java中是如何处理异常的。
Java中的常见异常如下图:
![](https://s4.51cto.com/wyfs02/M00/06/75/wKiom1m4qWfRiMv7AADDxzkspek720.png)
当然,这只列出了一部分,还有很多的异常已比较常见,当大家碰到时最好查一下JDK。
Java中异常的三种处理方式:
try-catch-finally
throw和throws
一、try-catch-finally
try部分是必须的,用来捕获异常,一般把有可能出现异常的代码放入其中。
catch部分可以有零到多个,是用来判断异常类别并进行处理,一般把异常处理代码放入其中。
finally部分可选,无论是否有异常都必须执行的代码放入其中。
二、thorw和throws
这个关键字的作用是抛出异常,它不处理。
我叫小明给我带份红烧肉,小明去食堂发现没有红烧肉(这就相当于异常出现了),他不知道如何处理,就回到寝室告诉我没有红烧肉,然后我再来处理。
编写测试代码:
![](https://s1.51cto.com/wyfs02/M00/06/76/wKiom1m4rbCBvCWJAAAd58WvCrY080.png)
不瞎的朋友应该发现有什么问题了吧?
是的,因为buyFood()方法后面我们加了throws Exception,所以在调用时IDE就认为这儿极有可能会有异常,我们就必须处理它,还是两种方式,要么使用try-catch,要么在main方法后继续抛异常(throws Exception)。
![](https://s4.51cto.com/wyfs02/M01/06/76/wKiom1m4rkGC5Sc7AAA2sY4YOqQ796.png)
在Java中,除了使用JDK中定义好的异常外,我们还可以自定义异常,这个很简单,定义一个类,继承Exception类,重写一个参数的构造方法就OK了。
好吧,异常到这儿就够用了,需要深入了解的朋友,请自行百度吧,哈哈!
![](http://img.baidu.com/hi/jx2/j_0028.gif)
“软件思维”博客地址:51CTO,博客园,感兴趣的小伙伴可以去看相关的其它博文。
![](https://s4.51cto.com/wyfs02/M02/06/74/wKiom1m4oQqxKdrbAAFGwKziKVg319.png)
![](https://s2.51cto.com/wyfs02/M01/A5/25/wKioL1m4oOLjWr47AAFsu0bBQpY688.png)
正常情况下,从家到公司上班,只需要20分钟!但如果在路上碰到堵车或修路或车突然自燃等问题,那就没办法正常去上班了。其中堵车或修路或车突然自燃等问题就属于异常。
![](https://s4.51cto.com/wyfs02/M00/06/75/wKiom1m4o5-z165XAAF7me8U_-I750.png)
碰到异常,就需要处理,不然就只能中断上班了。
在Java程序中的异常表示什么意思呢?
Java中的错误分为两类:错误(Error)和异常(Exception)
错误一般都是在编译前IDE就能发现并提示,例如非要给整型变量赋一个超大的数值:
![](https://s2.51cto.com/wyfs02/M01/06/75/wKiom1m4pVzyXurKAAAobEQWUQQ110.png)
这就是一个典型的Error。
程序在运行时出现的问题,就叫异常!!!如果在编程时不考虑到对这些异常的处理,当出现异常时,程序就会停止。例如下面示例中的除0错误:
![](https://s2.51cto.com/wyfs02/M01/A5/25/wKioL1m4pwuidY2IAAA-PgWQvnA448.png)
出现错误很好解决,在编码环节改正确就OK了,但有的时候是否出现异常就不是开发者能控制的(如上例),所以开发者只能预判哪些地方有可能出现异常,提前做好处理。
![](https://s2.51cto.com/wyfs02/M00/A5/26/wKioL1m4p7rjSZnpAAAnjFGsyE4083.png)
可以发现结果中不再出现异常的信息,而且换成了我们自己的提示信息。
就跟下面两个图的区别一下,如果异常直接出现在用户面前,用户很有可能就再也不用你的程序了,而如果给个提示,则用户有可能会继续使用。
![](https://s1.51cto.com/wyfs02/M01/06/75/wKiom1m4qLjC22vWAAB1TJVypJM826.jpg)
![](https://s4.51cto.com/wyfs02/M00/06/75/wKiom1m4qLmAIaj9AACVLI00dqo347.jpg)
异常的概念就介绍完毕啦!!!
![](http://img.baidu.com/hi/jx2/j_0019.gif)
,接下来看看Java中是如何处理异常的。
Java中的常见异常如下图:
![](https://s4.51cto.com/wyfs02/M00/06/75/wKiom1m4qWfRiMv7AADDxzkspek720.png)
当然,这只列出了一部分,还有很多的异常已比较常见,当大家碰到时最好查一下JDK。
Java中异常的三种处理方式:
try-catch-finally
throw和throws
一、try-catch-finally
try部分是必须的,用来捕获异常,一般把有可能出现异常的代码放入其中。
catch部分可以有零到多个,是用来判断异常类别并进行处理,一般把异常处理代码放入其中。
finally部分可选,无论是否有异常都必须执行的代码放入其中。
这个关键字的作用是抛出异常,它不处理。
我叫小明给我带份红烧肉,小明去食堂发现没有红烧肉(这就相当于异常出现了),他不知道如何处理,就回到寝室告诉我没有红烧肉,然后我再来处理。
![](https://s1.51cto.com/wyfs02/M00/06/76/wKiom1m4rbCBvCWJAAAd58WvCrY080.png)
不瞎的朋友应该发现有什么问题了吧?
是的,因为buyFood()方法后面我们加了throws Exception,所以在调用时IDE就认为这儿极有可能会有异常,我们就必须处理它,还是两种方式,要么使用try-catch,要么在main方法后继续抛异常(throws Exception)。
![](https://s4.51cto.com/wyfs02/M01/06/76/wKiom1m4rkGC5Sc7AAA2sY4YOqQ796.png)
在Java中,除了使用JDK中定义好的异常外,我们还可以自定义异常,这个很简单,定义一个类,继承Exception类,重写一个参数的构造方法就OK了。
好吧,异常到这儿就够用了,需要深入了解的朋友,请自行百度吧,哈哈!
![](http://img.baidu.com/hi/jx2/j_0028.gif)
“软件思维”博客地址:51CTO,博客园,感兴趣的小伙伴可以去看相关的其它博文。
相关文章推荐
- 《Java从入门到放弃》JavaSE入门篇:异常
- 《Java从入门到放弃》JavaSE入门篇:异常
- 《Java从入门到放弃》JavaSE入门篇:运算符
- 《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)
- 《Java从入门到放弃》JavaSE入门篇:网络编程(入门版)
- 《Java从入门到放弃》JavaSE入门篇:集合
- 《Java从入门到放弃》JavaSE入门篇:文件操作
- 《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)
- 《Java从入门到放弃》JavaSE入门篇:数组
- 《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
- 《Java从入门到放弃》JavaSE入门篇:集合
- 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统
- 《Java从入门到放弃》JavaSE入门篇:面向对象语法二(入门版)
- 《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)
- 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统
- 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)