1、什么是异常,java提供异常处理机制有什么用?
以下程序执行过程中发生了不正常的情况,而这种不正常的情况叫做:异常
java语言是很完善的语言,提供了异常的处理方式,以下程序执行过程中出现了不正常情况,java把该异常信息打印输出到控制台,供程序员参考。程序员看到异常信息之后,可以对程序进行修改,让程序更加的健壮。
什么是异常:程序执行过程中的不正常情况。
异常的作用:增强程序的健壮性。
2、java语言中异常是以什么形式存在的呢?
异常在java中以类的形式存在,每一个异常类都可以创建异常对象。
3、异常在java中以类和对象的形式存在。那么异常的继承结构是怎样的?
我们可以使用UML图来描述一下继承结构。
画UM图有很多工具,例如: Rational Rose(收费的)、starUML等…
4、什么是UML?有什么用?
UML是一种统一建模语言,一种图标式语言(画图的)。
UML不是只有java中使用。只要是面向对象的编程语言,都有UML。
一般画UM图的都是软件架构师或者说是系统分析师。这些级别的人员使用的。软件设计人员使用UML。
在UML图中可以描述类和类之间的关系,程序执行的流程,对象的状态等.
盖大楼和软件开发一祥,一个道理。
盖楼之前,会先由建筑师画图纸。图纸上一个一个符号都是标准符号。这个图纸画完,只要是搞建筑的都能看懂,因为这个图纸上标注的这些符号都是一种"标准的语言"。
在java软件开发当中,软件分析师/设计师负责设计类,java软件开发人员必须要能看懂。
5、异常类继承关系
Object
Object下有Throwable (可抛出的)
Throwable下有两个分支:
Error (不可处理,直接退出JVM)
Exception (可处理的)
Exception下有两个分支:
Exception的直接子类:编译时异常
RuntimeException:运行时异常。
6、所有的异常都发生在运行阶段
7、Java语言中对异常的处理包括两种方式:
处理异常的第一种方式:
在方法声明的位置上使用throws关键字抛出,谁调用我这个方法,我就抛给谁。抛给 调用者 来处理。
这种处理异常的态度:上报。
处理异常的第二种方式:
使用try …catch语句对异常进行捕捉。
这个异常不会上报,自己把这个事儿处理了。异常抛到此处为止,不再上抛了。
8、深入try …catch
(1)catch后面的小括号中的类型可以是具体的异常类型,也可以是该异常类型的父类型。
(2)catch可以写多个。建议catch的时候,精确的一个一个处理。这样有利于程序的调试。
(3)catch写多个的时候,从上到下,必须遵守从小到大。
9、在以后的开发中,处理编译时异常,应该上报还是捕捉呢,怎么选?
如果希望调用者来处理,选择throws上报。
其它情况使用捕捉的方式。
10、异常对象有两个非常重要的方法:
获取异常简单的描述信息∶
String msg =exception.getMessage();
打印异常追踪的堆栈信息:
exception . printStackTrace( ) ;
例子:
NullPointerException e = new NullPointerException("空指针异常");
//获取异常简单描述信息∶这个信息实际上就是构造方法上面string参数。
String msg = e.getMessage();//空指针异常
system.out.println(msg);
e. printStackTrace();//推荐在开发中,在catch语句中使用该方法,养成好习惯
我们以后查看异常的追踪信息,我们应该怎么看,可以快速的调试程序呢?
异常信息追踪信息,从上往下一行一行看。
但是需要注意的是:SUN写的代码就不用看(看包名就知道是自己的还是SUN的),主要的问题是出现在自己编写的代码上。
11、Java中怎么自定义异常呢?
第一步:编写一个类继承Exception或者RuntimeException.
第二步:提供两个构造方法,一个无参数的,一个带有String参数的。
public class MyException extends Exception{//编译时异常
public MyException(){
}
public MyException(String s){
super(s);
}
}
/*
public class MyException extends RuntimeException{//运行时异常
}
*/