一起Talk Android吧(第十四回:Java中的异常)
2017-03-12 12:32
253 查看
各位看官们,大家好,上一回中咱们说的是Java面向对象综合练习的例子,这一回咱们说的例子是Java中的异常。闲话休提, 言归正转。让我们一起Talk Android吧!
看官们,介绍完面向对象的知识后,我们的代码也变的复杂起来,这时难免会产生一些错误。错误分为两种:
一种是编译时的错误;
一种是运行时的错误;
编译时的错误属于语法错误,这种类型的错误依据编译时产生的错误提示就能解决。运行时的错误需要跟踪并且分析代码才能解决,这种错误解决起来要复杂一些,不过Java提供了异常机制,专门用来协助解决这种运行时的错误。
我们还是通过伪代码来演示异常的处理形式:
上面的伪代码中Catch语句块可以有多个,final语句块是异常的统一出口,不管是否存在异常都会被执行,它只能有一个,或者省略不写。异常类可以是自己定义的异常类,或者是
我们分析一下异常捕获与执行过程:
在try块中捕获异常,在catch中与捕获的异常进行匹配,这里的匹配主要是异常类对象的匹配。如果匹配成功则执行异常处理语句,否则继续匹配其它catch语句;如果没有匹配的catch语句,那么中断程序。
异常匹配成功后是如何处理异常的呢?通常是打印异常发生时的函数调用栈,具体操作为
这里的e是Exception类或者其子类的对象。通过打印的函数调用栈,我们可以快速定位异常发生的位置,进而找出发生异常的原因。
我们在实际的编程工作中,可以定义自己的异常,具体做法是继承Exception类。比如:
不过这种情况不是很多,常用的是捕获并且处理程序中的异常。那么在什么时候需要处理异常呢?这就需要我们来判断,比如除法运算中的除0操作会引起异常,这时候就需要我们捕获并且处理异常。我们需要把除法操作到放到try语句块中,并且在catch语句块中捕获并且处理异常。除此之外,Java还提供了
关于异常的代码,我们先不举例说明,在以后的章回中,我们会经常看到异常的身影。实际的练习的机会非常多,因此我们在本章回只说理论上的内容,具体的代码在以后的章回中大家将会看到。
各位看官,关于Java中异常的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
看官们,介绍完面向对象的知识后,我们的代码也变的复杂起来,这时难免会产生一些错误。错误分为两种:
一种是编译时的错误;
一种是运行时的错误;
编译时的错误属于语法错误,这种类型的错误依据编译时产生的错误提示就能解决。运行时的错误需要跟踪并且分析代码才能解决,这种错误解决起来要复杂一些,不过Java提供了异常机制,专门用来协助解决这种运行时的错误。
我们还是通过伪代码来演示异常的处理形式:
try { //可能发生异常的语句 }catch(异常类 异常对象) { //异常处理语句 } //... 可以有多个catch语句 finally { // do something }
上面的伪代码中Catch语句块可以有多个,final语句块是异常的统一出口,不管是否存在异常都会被执行,它只能有一个,或者省略不写。异常类可以是自己定义的异常类,或者是
Exception类
我们分析一下异常捕获与执行过程:
在try块中捕获异常,在catch中与捕获的异常进行匹配,这里的匹配主要是异常类对象的匹配。如果匹配成功则执行异常处理语句,否则继续匹配其它catch语句;如果没有匹配的catch语句,那么中断程序。
异常匹配成功后是如何处理异常的呢?通常是打印异常发生时的函数调用栈,具体操作为
e.printStackTrace();
这里的e是Exception类或者其子类的对象。通过打印的函数调用栈,我们可以快速定位异常发生的位置,进而找出发生异常的原因。
我们在实际的编程工作中,可以定义自己的异常,具体做法是继承Exception类。比如:
class MyException extends Exception { //do something };
不过这种情况不是很多,常用的是捕获并且处理程序中的异常。那么在什么时候需要处理异常呢?这就需要我们来判断,比如除法运算中的除0操作会引起异常,这时候就需要我们捕获并且处理异常。我们需要把除法操作到放到try语句块中,并且在catch语句块中捕获并且处理异常。除此之外,Java还提供了
throws关键字,它用来修饰函数,如果某个函数使用了该关键字,那么我们在调用该函数时,必须捕获并且处理异常,不然会有语法错误。其伪代码如下:
void func() throws { //do somethin }; try { func(); }catch(Exception e) { e.printStackTrace(); }
关于异常的代码,我们先不举例说明,在以后的章回中,我们会经常看到异常的身影。实际的练习的机会非常多,因此我们在本章回只说理论上的内容,具体的代码在以后的章回中大家将会看到。
各位看官,关于Java中异常的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!
相关文章推荐
- 一起Talk Android吧(第二十三回:Java多线程编程一)
- 一起Talk Android吧(第三回:Java中的变量类型)
- 一起Talk Android吧(第二十回:Java常用类之Date续)
- 一起Talk Android吧(第二十五回:Java多线程编程三)
- 一起Talk Android吧(第二十四回:Java多线程编程二)
- 一起Talk Android吧(第十八回:Java常用类String VS StringBuffer)
- 一起Talk Android吧(第十七回:Java常用类之StringBuffer)
- 一起Talk Android吧(第四回:Java中的运算符)
- 一起Talk Android吧(第九回:Java中的封装:一)
- 一起Talk Android吧(第八回:Java中的面向对象)
- 一起Talk Android吧(第十九回:Java常用类之Date)
- 一起Talk Android吧(第十三回:Java面向对象综合练习)
- 一起Talk Android吧(第二回:Java版Hello World)
- 一起Talk Android吧(第十一回:Java中的继承)
- 一起Talk Android吧(第七回:Java综合小练习)
- 一起Talk Android吧(第十五回:Java常用类之Arrays)
- 一起Talk Android吧(第十六回:Java常用类之String)
- 一起Talk Android吧(第二十一回:Java常用类之文件操作一)
- 一起Talk Android吧(第六回:Java中的函数)
- 一起Talk Android吧(第十二回:Java中的多态)