黑马程序员_异常处理

Java  语言在 编译时出现的错误是语法错误,,在 运行是的错误是 异常错误。

java将异常进行了封装,形成了体系。

首先 需要明确,,在java中,只有 Throwable 体系下的子类才有被throw、throws 关键字处理的机制。

 

---------------

throw:用于方法内部,抛出异常对象。。

throws:用于方法上,抛出异常类,可以抛出多个,用逗号隔开

 

 

当在方法内 throw 出异常时,要么try 这个异常进行处理,要么 在方法上throws 标识出这个异常,否则会编译失败。

 

如果方法上有抛出异常,用户调用这个方法,必须进行处理,要么try   ,要么throws,否则会报错。

------------------

既然有了必须的,当然也会有特殊 类的异常。。

 

特殊异常  RuntimeException,这种异常,可以处理 ,也可以不处理。当程序出错时,就会停止运行。

java认为 程序没有错误,是用户自己的错误,需要用户自己调整处理。

 

---------------

finally 中定义的通常是 关闭资源代码,因为资源必须释放

finally只有一种情况执行不到  system.exit(0);

 

---------------

异常处理的格式:

          try{// Code that might generate exception      监控区域。    }       catch(){  //异常处理程序。        }

             try{         }         finally{         }

 

             try{          // Code that might generate exception      监控区域。        }catch()        {       //异常处理程序。      }       finally{    //  一定会执行的代码        }

 

当异常被抛出,异常处理机制将负责搜寻参数与异常类型相匹配的第一个处理程序,然后进入catch子句执行,注意:只有匹配的catch子句才能被执行。

 

有点像switch,但是case子句后面都会有break,避免后续的case子句执行。

 

 

注:在java中 唯有catch 是处理异常,如果么有 catch,那么必须进行抛出,否则会出错。。

 

-------------

自定义异常:

 

 定义类继承Exception 或者 RuntimeException

  1、让类具有可抛性,

  2、继承类的共同方法,方便操作。

-------------..

 

 

子类覆盖父类,异常处理

1、如果父类方法没有异常,子类覆盖父类的方法也不可以抛出异常,必须进行try处理。

2,、如果父类抛出了异常,子类只能抛出父类方法的异常的子类或者子集。

 

 

因为早期的程序是不能处理新的异常,(父类已经有问题了,子类不能比父类更有问题。)

 

 

posted @ 2014-06-21 17:59  LoreSave  阅读(140)  评论(0)    收藏  举报