Try中如果发现错误,即跳出try去匹配catch,那么try后面的语句就不会被执行

本文深入探讨了编程语言中异常处理的机制,包括如何通过try...catch语句捕获和处理异常,以及如何通过throws关键字将异常传递给调用者。文章还提供了Python和Java中的异常处理示例,展示了如何使用finally块确保代码执行。

例:public void print() throws Exception.
对于方法a,如果它定义了throws Exception。那么当它调用的方法b返回异常对象时,方法a并不处理,而将这个异常对象向上一级返回,如果所有的方法均不进行处理,返回到主方法,程序中止。(要避免所有的方法都返回的使用方法,因为这样出现一个很小的异常就会令程序中止)。
如果在方法的程序中有一行throw new Exception(),返回错误,那么其后的程序不执行。因为错误返回后,后面的程序肯定没有机会执行,那么JAVA认为以后的程序没有存在的必要。
对于try……catch格式:
try {可能出现错误的代码块} catch(exception e){进行处理的代码} ;
对象变量的声明
用这种方法,如果代码正确,那么程序不经过catch语句直接向下运行;
如果代码不正确,则将返回的异常对象和e进行匹配,如果匹配成功,则处理其后面的异常处理代码。(如果用exception来声明e的话,因为exception为所有exception对象的父类,所有肯定匹配成功)。处理完代码后这个例外就完全处理完毕,程序会接着从出现异常的地方向下执行(是从出现异常的地方还是在catch后面呢?利用程序进行验证)。最后程序正常退出。
Try中如果发现错误,即跳出try去匹配catch,那么try后面的语句就不会被执行。

package TomText;
//定义一个求圆面积的类。
public class TomText_48 {
    private double radius;
    final double pi=3.14;
    public  double setradius(double r){
        return radius=r;
    }

    public void getRadius() {
        this.setradius(radius);
    }
    public double calculateArea( ) {
        return pi*radius*radius;
    }
    public void res(){
        System.out.println(this.calculateArea());
    }
    public static void main(String[] args){
        TomText_48 t=new TomText_48();
        t.setradius(44);
        double s=t.calculateArea();
        t.res();
        System.out.println(s);
    }

}

是的,你说的正确。在Python和许多其他编程语言(如Java,C#)中,如果try块中的代码引发了一个异常,那么程序会立即跳出try块,并寻找与该异常匹配的catch块。如果在try块后面没有找到匹配的catch块,那么程序将终止并抛出该异常。
这意味着如果在try块中有一个函数调用或其他的代码,这些代码的执行结果如果在try块结束时没有任何异常被抛出,那么这些代码的结果就会被执行。但如果try块在执行过程中抛出了异常,那么这些代码就不会被执行。
以下是一个Python的例子:

try:
    # 这里可能会抛出一个异常
    x = 1 / 0
except ZeroDivisionError:
    print("你不能除以零!")
finally:
    print("这是在try/except之后的代码")

在这个例子中,如果我们将除数设为零,会抛出一个ZeroDivisionError,程序会立即跳到except块并打印出"你不能除以零!“。无论是否发生异常,finally块的代码总是会被执行,所以会打印出"这是在try/except之后的代码”。当然可以。根据你的需求,我将继续为你编写代码。以下是一个例子,你可以参考这个模式来继续你的程序:

try:
    # 这里可能会抛出一个异常
    x = 1 / 0
except ZeroDivisionError:
    print("你不能除以零!")
finally:
    print("这是在try/except之后的代码")
# 如果try块没有抛出异常,程序会继续执行这里的代码
print("这是在try/except之后的代码")

在这个例子中,如果在try块中没有抛出异常,那么两个"这是在try/except之后的代码"都会被打印出来。但如果尝试除以零,只会打印出"你不能除以零!“和"这是在try/except之后的代码”。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值