黑马程序员_异常处理

来源:互联网 发布:全能转盘抽奖软件 编辑:程序博客网 时间:2024/06/05 14:28

 ------- android培训java培训、期待与您交流! ----------

 

 

 异常:

异常:就是程序在运行时出现不正常情况。

异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。其

实就是java对不正常情况进行描述后的对象体现。

异常的处理:

try

{

    //需要被检测的代码;

}

catch(异常类变量)

{

    //处理异常的代码;(处理方式)

}

finally

{

    //一定会执行的语句;

}

当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作。

要么在内部try catch处理。

要么在函数上声明让调用者处理。

一般情况在,函数内出现异常,函数上需要声明。

对于异常分两种:

1、编译时被检测的异常

2、编译时不被检测的异常(运行时异常。RuntimeException以及其子类)

Finally的使用:一般在finally中回收一些资源,比如数据库连接的关闭、IO文件

流的通道关闭、临时变量的指针回收等等操作。唯一存有疑问的可能就是finally

的执行时机。到底是在return之前还是之后,实际上如果一个try块存在return了,

那么如果这段try块有相应的finally的话那么return操作先挂起,之后执行finally中

的代码,如果finally代码块没有return,或者其他影响try块的语句的话,那么执行

完finally代码段之后再执行return语句。什么情况下finally中会影响try中的return

执行呢?就是finally中也存在着return语句,或者System.exit(0);这种系统级关闭

的语句。

finally代码块:定义一定执行的代码。通常用于关闭资源。

try

{

   

}

catch ()

{

}

try

{

   

}

catch ()

{

}

finally

{

 

}

 又或者

try

{

   

}

finally

{

}


异常练习:try catch finally练习 

class LessThanZeroException extends Exception { public LessThanZeroException(String s) { super(s); } public LessThanZeroException() { this(""); } }public class Mult1 { protected double result; public void Mult1(double result)throws LessThanZeroException { this.set(result); } public void set(double result) throws LessThanZeroException { if(result<0) throw new LessThanZeroException(""+result); } public static void main(String args[]) { double m=4; double n=0.2; double result=m*n; try { if(result<0) {throw new LessThanZeroException();}} catch(LessThanZeroException e) { System.out.println("产生乘积小于0异常!"); } finally { System.out.println("乘积为"+result); } } }







 ------- android培训java培训、期待与您交流! ----------

0 0