Java中的异常

异常

1.1什么是异常
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。
1.2关键字:
1 try(尝试执行的代码块);
2 catch(捕获异常);
3 finally;(是否异常都执行代码)
System.exit(1) //退出java虚拟机,当catch中出现此代码时,不执行finally。(唯一不执行finally的情况。)
-任何执行try 或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。
如果finally中有return语句,那么程序就return了,所以finally中的return是一定会被return的,
编译器把finally中的return实现为一个warning。
示例:

public class FinallyTest  
{
    public static void main(String[] args) {
        System.out.println(new FinallyTest().test());;
    }
    static int test()
    {
        int x = 1;
        try
        {
            x++;         //x==2;
            return x;   //返回值 2;
        }
        finally
        {
            ++x;        //x==3;
        }
    }
}

在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到finally执行了。在转去之前,try中先把要返回的结果存放到不同于x的局部变量中去,执行完finally之后,在从中取出返回结果,因此,即使finally中对变量x进行了改变,但是不会影响返回结果。它应该使用栈保存返回值。

4  throw;     throw new Exception();     //  
5  throws;throws Exception     //在定义方法时,声明会出现异常  

- try 、caatch、finally、throw、throws。
- throw 和自定义异常同时使用,抛出异常后就不会在执行下部代码。
throws和throw的使用区别:
- throws 只能出现在方法函数头;而throw出现在函数体。
- throws 表示出现异常的一种可能性,并不一定会发生这些异常。
- 在文件流操作和数据库连接的时候 需要用到finally;
1.3异常对象常用的方法
Exception e
e.getMessage() 返回异常信息描述字符串,是printStackTrace()的一部分
e.printStackTrace() 输出异常的堆栈信息。
system.err.println() //用户自定义的输出信息。
Exception 所有异常的父类
- 一般有哪些错误。
1. 语法错误
2. 运行时错误 catch 能够捕获的异常
3. 系统错误(Error ApplicationException)
4. 逻辑错误 (通过throw抛出异常进行处理)
- Error:仅靠程序本身无法恢复的严重错误;
- Exception:由Java应用程序抛出和处理的非严重错误
- Checked类异常,程序必须处理。
- RuntimeException:运行时异常,不要求程序必须做出处理

  • 示例
do{    
    try{
          //代码块
    }catch(异常内容 变量){
         //代码异常,执行代码!
    }catch(Exception e){
          变量.getMessage()
    }finally{
           //程序一定会执行,特殊情况除System.exit(1)外。
} while (boolean);

catch 语句的可以嵌套使用,类似于if。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值