异常处理Try Catch之try后面直接跟()

异常处理Try Catch之try后面直接跟()

当程序运行过程中发生错误时,就会“ 抛出异常’,抛出异常比终止程序要灵活得多,这是因为可以提供一个“ 捕获” 异常的处理器 (handler) 对异常情况进行处理。

如果没有提供处理器,程序就会终止,并在控制台上打印出一条信息, 其中给出了异常的类型。可能在前面已经看到过一些异常报告, 例如, 偶然使用了 null 引用或者数组越界等。

异常有两种类型: 未检查异常和已检查异常。 对于已检查异常, 编译器将会检查是否提供了处理器。 然而,有很多常见的异常, 例如,访问 null 引用, 都属于未检查异常。编译器不会査看是否为这些错误提供了处理器。毕竟,应该精心地编写代码来避免这些错误的发生, 而不要将精力花在编写异常处理器上。

下面举个小例子

try {
            //获取一个流
            br = new BufferedReader(new InputStreamReader(System.in));
            //业务处理。。。。
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //释放资源
            if(br!=null){
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

我们平时都是上述写法,处理异常时,会在finally中处理必须执行的代码,比如操作io流时,不论是否有错误,我们都要释放资源,所以会将关闭资源的代码放在finally中。

自从jdk1.7后,引入了新的初六方式

try (BufferedReader br = new BufferedReader(new FileReader("AutoCloseTest.java"));
             PrintStream ps = new PrintStream(new FileOutputStream("a.txt"))) {
            //获取一个流

            //业务处理。。。。

        } catch (Exception e) {
            e.printStackTrace();
        }

我们在try后面()中创建流,会默认在异常处理结束的时候释放资源。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Java 中,异常处理是非常重要的一部分。异常是在程序运行期间发生的错误,例如除以零、空指针引用等。当这些错误发生时,程序会抛出一个异常对象。异常处理可以让程序在出现异常时不会崩溃,而是能够优雅地处理异常情况。 在 Java 中,异常处理的语法是使用 try-catch 块。try 块中包含可能会引发异常的代码,catch 块用于捕获并处理异常。catch 块可以捕获一个或多个异常。 下面是一个简单的示例,演示了如何使用 try-catch 块来处理异常: ```java public class ExceptionHandlingExample { public static void main(String[] args) { try { int a = 10 / 0; // 除以零,会抛出一个 ArithmeticException 异常 } catch (ArithmeticException e) { System.out.println("发生了异常:" + e.getMessage()); } } } ``` 上述代码中,我们使用 try-catch 块来处理除以零的异常。try 块中的代码会抛出一个 ArithmeticException 异常,catch 块会捕获这个异常并打印出异常信息。 在 catch 块中,我们可以使用 e.getMessage() 方法获取异常信息。此外,我们还可以使用 e.printStackTrace() 方法打印出完整的异常堆栈信息,以便更好地排查错误。 需要注意的是,如果一个方法中包含多个可能抛出异常的语句,那么需要对每个语句使用 try-catch 块进行异常处理。或者,也可以在方法声明中使用 throws 关键字声明可能抛出的异常类型,让调用者进行异常处理
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值