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("这里可执行其他代码");

 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值