异常处理

本文详细介绍了异常的概念,包括运行时异常和编译时异常,并提供了三种处理异常的方法:避免异常、使用try-catch-finally结构以及抛出异常。此外,还讨论了throw与throws的区别以及如何自定义异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(What?)异常是所有人都会出现的问题,没有没有异常的程序。

      异常可分为运行时异常和编译时异常

      注意:运行时异常只能在运行的时候被抓住。

         编译时异常需要在编译时就要去处理,如果不处理异常就不能通过编译。

(How?)处理异常的三种方法:

      1、避免异常()

      2、ftr---catch---finally

        注意:try和catch最好同时出现,可以有多个catch。

           try语句只能抓住语句中的第一个异常。

           try语句抓住了异常,就马上把程序流程走向权限交给catch,直接执行catch语句块中的代码。

           如果catch语句后面出现了finally语句,finally语句都会被强制执行,除非你关掉JVM或者电脑。

      3、抛出异常

        throw:抛出另一个异常对象,如果抛出的是运行时异常不会自动提示,一但被执行,就会真正发生一个异常对象被抛出

        throws:不是一段执行代码,只是警告方法调用者,本方法有可能会发生异常,调用者需要自行处理。

        throw和throws的区别(这个可能会在面试的时候会被提问)

        throw出现的位置是在方法内,而throws出现的位置是在方法的声明部份。

        throw抛出运行时异常不会自动提示,而throws会自动提示。

        throw是一段可执行代码,一但被执行就会真正发生一个异常对象被抛;throws不是执行代码,只是警告调用者,本方法有可能发生异常,调用者需要自行处理。

    异常的解决方案:

        1、提前判断,让异常根本不能出现。

        2、try---catch(补救手段)。

          如果throw后面跟上非运行时异常,就需要要求方法声明部分使用throws。

          在重写方法的时候,子类抛出的异常不能比父类抛出的异常多(多是指范围)

          注意:如果父类方法抛出的异常和子类方法抛出的异常没有继承关系是不被允许的。

        3、不能明确解决方案,把异常抛出,交给调用都解决。

  异常处理宗旨;只要抓住了异常就要处理,为了让代码继承运行。

    异常也是可以自定义的。

      注意:1、一定要继承Excepion或者Throwable.

         2、一定要有一个带Excepion或者Throwable参数的构造方法。这样才能把各种异常装入到异常对象上。

         3、一定要有一个带String参数的构造方法,这样才能实现业务异常的封装(业务异常:是指JVM不报异常的异常)。

         4、添加自定义异常的自身的方法。

转载于:https://www.cnblogs.com/vansjun/p/7442056.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值