java中怎么捕获异常?Throwable类的方法有哪些?

BSO 2020-08-28 08:53:25 java常见问答 4198

我们已经为大家介绍过java异常处理的原因,今天继续为大家讲述下java怎么捕获异常,以及通过图表为大家描述Throwable类的方法是怎样的。

首先,应该怎么捕获异常呢?

我们可以使用try和catch关键字来捕获异常。try/catch代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码,使用try/catch的语法如下:

try
{
    // 程序代码
}
catch (ExceptionName e1)
{
    //Catch 块
}

另外,Catch语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try后面的catch块就会被检查。

但是如果发生的异常包含在catch块中,那么异常会被传递到该catch块,这和传递一个参数到方法是一样的。

接下来为大家展示一个实例:

// 文件名 : ExcepTest.java
import java.io.*;
public class ExcepTest
{
    public static void main(String args[])
    {
        try
        {
            int a[] = new int[2];
            System.out.println("Access element three :" + a[3]);
        }
        catch (ArrayIndexOutOfBoundsException e)
        {
            System.out.println("Exception thrown  :" + e);
        }
        System.out.println("Out of the block");
    }
}

上面的例子中声明有两个元素的一个数组,当代码试图访问数组的第三个元素的时候就会抛出一个异常。

运行结果如下:

Exception thrown: java.lang.ArrayIndexOutOfBoundsException: 3
Out of the block

那么我们应该怎样多重捕获呢?

首先,一个try代码块后面跟随多个catch代码块的情况就叫多重捕获。

多重捕获块的语法如下所示:

try
{
    // 程序代码
}
catch (异常类型1 异常的变量名1)
{
    // 程序代码
}
catch (异常类型2 异常的变量名2)
{
    // 程序代码
}
catch (异常类型2 异常的变量名2)
{
    // 程序代码
}

可以看出,上面的代码段包含了3个catch块。可以在try语句后面添加任意数量的catch块。

如果保护代码中发生异常,异常被抛给第一个catch块。如果抛出异常的数据类型与ExceptionType1匹配,它在这里就会被捕获。如果不匹配,它会被传递给第二个catch块。如此,直到异常被捕获或者通过所有的catch块。

实例展示如下:

try
{
    file = new FileInputStream(fileName);
    x = (byte) file.read();
}
catch (FileNotFoundException f)
{ // Not valid!
    f.printStackTrace();
    return -1;
}
catch (IOException i)
{
    i.printStackTrace();
    return -1;
}

接下来通过图表为大家展示Throwable类的方法有哪些。

javaThrowable类的方法

总而言之,java捕获异常的过程还是比较复杂的,这就需要我们能够熟练地掌握和应用java了。想要了解更多java常见问题,敬请关注奇Q工具网。

推荐阅读:

java语言编程如何实现一个最简单程序?

java语言支持多继承吗?为什么?

java语言关键字有哪些?都有什么用处?