当前位置: 首页 > news >正文

每日一题----------异常处理

总结:

  • NullPointerException:尝试使用一个空引用进行操作时抛出。

  • ArrayIndexOutOfBoundsException:数组下标越界时抛出。

  • ClassCastException:类型转换失败时抛出。

  • ArithmeticException:数学运算错误时抛出,如除以零。

  • IllegalArgumentException:传递给方法的参数不合法时抛出。

  • NumberFormatException:字符串转数字失败时抛出。

在Java中,异常(Exception)是程序执行期间出现的错误情况。Java中的异常处理机制允许程序优雅地处理这些错误而不至于崩溃,并且提供了组织和管理异常的方式。Java中的异常主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions)。此外,还有一个特殊的类别叫做错误(Errors),它们通常代表严重的、通常是不可恢复的问题。

执行顺序:

1.如果没有出现异常,则需要try块中所有的语句,不执行catch块中的语句,如果有finally,最后还需要执行finally里面的语句。

2.如果出现异常,则try块中异常发生后,try块还剩下的语句不在执行,将执行catch块中的语句,如果有finally,最后还需要执行finally里面的语句。

基础语法:

try{
         int num1 = 10 ;
         int num2 = 0 ;
         double sum = num1/num2;
     } catch (ArithmeticException e) {
         System.out.println("异常信息 = "+e.getMessage());
     }finally {
         System.out.println("程序继续运行....");
     }

运行结果:

 特殊情况:如果代码中有两种异常,那么可以使用多个catch块来捕获,但是要遵守子类异常写在前面,父类异常写在后面。

 try{
         Try aTry = new Try();
         aTry = null;
         System.out.println(aTry.getClass());
         int num1 = 10 ;
         int num2 = 0 ;
         System.out.println(num1/num2);
     }catch (ArithmeticException e) {
         System.out.println("算术异常信息 = "+e.getMessage());
     } catch (NullPointerException e) {
         System.out.println("空指针异常信息 = "+e.getMessage());
     } catch (Exception e) {
         System.out.println("异常信息 = "+e.getMessage());
     } finally {
         System.out.println("程序继续运行....");
     }
    }

运行结果:

通过结果可以发现,可以先捕获第一个,然后后续代码将不会执行

如果搭配try和final使用,如果有异常会使程序崩掉。

try{
         int num1 = 10 ;
         int num2 = 0 ;
         System.out.println(num1/num2);
     }
     finally {
         System.out.println("程序继续运行....");
     }

 运行结果:

此时会报错,也就是说异常没有被catch捕获,那么程序执行完就蹦了,简单理解就是有病没有治,所以final相当于亡语。 

关于throws异常处理:

当一个方法声明了它可能会抛出某些异常后,任何调用这个方法的地方都需要处理这些异常。处理方式有两种:

  1. 捕获异常:使用 try-catch 语句块来捕获并处理异常。

  2. 声明抛出异常:如果你不希望在当前方法中处理异常,可以通过 throws 关键字再次声明该异常,将其传递给上一级调用者。

public void myMethod() throws IOException, SQLException {
    // 方法体
}

可以扔出给上一级的调用者,throws相当于摆烂,甩锅。一级向一级的传,最终传到jvm机,最终会挂了。

相关文章:

  • 【Python运维】实现高效的自动化备份与恢复:Python脚本从入门到实践
  • 数据结构---八大排序
  • Python的学习篇(七)--网页结构
  • 数据清洗与治理:为大模型预训练打造完美数据
  • Python已知后序遍历和中序遍历,求先序遍历
  • 字典树(trie树)详解
  • TCP/IP 5层协议簇:网络层(ICMP协议)
  • 如何学习编程?
  • Windows Server开启审计功能
  • Release of anyui for LVGL v0.27.0
  • grum-与gam-词源故事
  • 【数据分享】1999—2023年我国地级市污染物排放和环境治理数据
  • 【MySQL】数据库基础
  • 【计算机网络】TCP
  • Android 蓝牙OTA固件升级
  • Yashan SQL语句
  • OSCP最新备考攻略:迎接2024改版后的OSCP+认证
  • STM32-I2C通信协议
  • 苦瓜书盘官网,免费pdf/mobi电子书下载网站
  • SyntaxError: Unexpected identifier
  • 网站快速收录平台/站长统计在线观看
  • 如何创建一个网站/网络营销品牌
  • 天津最好的网站建设/广告联盟大全
  • php网站开发程序员/外国黄冈网站推广平台
  • 中国网页设计师网站/销售渠道都有哪些
  • 同服务器网站查询工具/推广网页