Java核心技术第11章(2)

11.2    捕获异常

    要想捕获一个异常,必须设置 try/catch 语句块.最简单的 try 语句块如下所示:
try
{
    code
    more code
    more code
}
catch(ExceptionType e)
{
    handler for this type
}
    如果在 try 语句块中的任何代码抛出了一个在 catch 子句中说明的异常类,那么
    1.程序将跳过 try 语句块的其余代码
    2.程序将执行 catch 子句中的处理器代码.
    如果在 try 语句块中的代码没有抛出任何异常,那么程序将跳过 catch 子句.
    如果方法中的任何代码抛出了一个在 catch 子句中没有声明的异常类型,那么这个方法就会立刻退出.
    为了演示捕获异常的处理过程,下面给出一个读取文本的典型程序代码:
public void read(String filename)
{
    try
    {
        InputStream in = new FileInputStream(filename);
        int b;
        while((b = in.read()) != -1)
        {
            process input
        }
    }
    catch(IOException exception)
    {
        exception.printStackTrace();
    }
}
    注释:在Java与C++众,捕获异常的方式基本相同.严格地说,下列代码
catch (Exception e)     // Java
    与
catch (Exception &e)    // C++
    是一样的.
    在Java中,没有与C++众 catch() 对应的东西.由于Java中的所有异常类都派生于一个公共的超类,所以没有必要使用这种机制.

11.2.1  捕获多个异常

    在一个 try 语句块中可以捕获多个异常类型,并对不同类型的异常做出不同的处理.可以按照下列方式为每个异常类型使用一个单独的 catch 子句:
try
{
    code that might throw exception
}
catch (FileNotFoundException e)
{
    emergency action for missing files
}
catch (UnknownHostException e)
{
    ...
}
    异常对象可能包含与异常本身相关的信息.要想获得对象的更多信息,可以试着使用
e.getMessage()
    得到详细的错误信息.或者使用
e.getClass().getName()
    得到异常对象的实际类型.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值