Java笔记三:Java的异常处理机制,
Java笔记三:Java的异常处理机制,
Java的异常处理机制
转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空)
1.如何处理异常
(1)抛出异常:在程序运行时当语义规则被违反时,将会抛出(throw)异常,即产生一个异常事件生成一个异常对象;
(2)捕获异常:异常抛出后,异常对象被提交给运行系统,try....catch。
总之,当语义规则被违反时,抛出异常对象,并引导程序流程从异常发生点转移到程序指定的处理异常方法处进行异常处理。
2.异常处理
常用try....catch...finally处理异常
catch语句格式:
try{....}
catch(异常类型e) {。。。。。。}//处理异常方法1
catch(异常类型e) {............}//处理异常方法2
......
finally{......}
注释:将可能会发生议程情况的代码放在try语句段中,利用try语句对这组代码进行监视。如果发生问题,系统会自动抛出异常对象e,交给cathc语句处理。如果cathc语句参数中声明的异常类与其抛出的异常类相同,或者是它的父类,catch语句就可以捕获这种异常对象。
3.throw新建一个异常类对象
在catch子句中异常对象是Java运行时由系统抛出的,抛出异常对象也可以通过代码实现。使用throw语句抛出一个异常对象(告知编译器此处要发生一个异常)
throw语句格式:
<<FONT face=宋体>异常对象名()>;
举例:throw new NullPointerException("空指针异常");
注释:程序执行中会在throw语句处终止,转向try....catch寻找异常处理方法,不再指向throw后面的语句。(主动抛出一个异常)
4.throws声明一个方法可能抛出异常
throws用来声明一个方法可能抛出各类异常,并说明该方法会抛出异常但不捕获。
throws语句格式:
<<FONT face=宋体>返回值类型> <</FONT>方法名>(参数) <</FONT>异常类型> { }
举例:static void mathod() throws IllegalAccessException
{
}
5.finally语句
有时要确保一段代码不管发生什么异常都能被执行,finally子句就是用来标识这样一段
代码。
6.创建自己的异常类
自定义异常类型是从Exception类派生的,用继承方式实现,语句格式如下:
<<FONT face=宋体>自定义异常名>
{
......
}
源代码:
//创建自己的异常类////创建自定义异常类(继承)//
class MyException extends Exception
{
private int x; //声明一个私有变量
MyException(int a){ x=a;} //构造方法
public String toString() //成员函数
{
return "MyException";
}
}
//创建一个类:用于抛出异常
1.throws用来声明一个方法中可能抛出的各种异常,并说明该方法会抛出异常但不捕获异常
<<FONT face=宋体>返回值><</FONT>方法名>(参数)throws<</FONT>异常类型> {}
2.throw语句明确地抛出一个异常对象,当条件满足时程序执行中会在throw语句处终止,转向
try....catch寻找异常处理方法,不再执行throw后面的语句。
<<FONT face=宋体>异常对象名>;//
public class TC8
{
static void method(int a) throws MyException //声明方法会抛出异常MyException
{
System.out.println("\t此处引用method("+a+")");
if(a>10) throw new MyException(a); //主动抛出异常MyException
System.out.println("正常返回");
}
//主类//
public static void main(String args[])
{
try
{
System.out.println("\n进入监控区,执行可能发生异常的程序段");
method(8);
method(20);
method(10);
}
catch(MyException e) //捕获异常,再做相应的处理,e为异常对象
{
System.out.println("\t程序发生异常并在此进行处理");
System.out.println("\t发生异常为:"+e.toString());
}
System.out.println("这里可执行其他代码");
}
}
相关文章
- 暂无相关文章
用户点评