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

Java Exception 异常相关总结

1.简介

在Java中,当代码运行有问题时会抛出异常,主要分为两类:

1.可以通过try...catch来捕获解决的,不影响后续执行的RuntimeException。

2.不可以通过代码解决的Exception。

为了提高代码的健壮性,我们会选择去捕获异常。

2.如何捕获

捕获可以采用以下伪代码逻辑来实现:

try {需要执行的并监视的流程 
} catch (抛出的异常对象 对象引用){异常的解决方案。
} catch(抛出的异常对象 对象引用){异常的解决方案。
}finally{最终执行的代码逻辑(不管程序有没有异常都会执行,该分支可以省略)
}

举例:

int i = 0;
int j;try{j = 10 / i;
} catch (ArithmeticException e){System.out.println("发现除零异常");
} finally {System.out.println("最终执行的代码");
}

一般抛出多个异常的场景先捕获小的异常,再捕获大的异常,小异常一边继承自大异常,小异常更有利于准确定位问题。 

3.常见的RuntimeException异常

除零异常:ArithmeticException

空指针异常:NullPointerException

数组越界:ArrayIndexOutOfBoundsException

字符串越界:StringIndexOutOfBoundsException

格式化异常:NumberFormatException

类型转换异常:ClassCastException

4.类的方法的异常处理

如果类的方法可能会发生异常,需要报备否则调用者将不知道异常了。

public class Main {public static void main(String[] args) {try{Test test = new Test();test.func(1,0);}catch(RuntimeException e){//处理异常System.out.println("异常了");}}
}class Test {public void func(int i, int j) throws RuntimeException {//报备可能发生的异常给调用者System.out.println(i / j);}
}

5.自定义异常

如果系统的异常无法覆盖所有的需求,那么可以自定义异常:

public class Main {public static void main(String[] args) {test("456");}public static void test(String a){if(!"123".equals(a)){throw new MyException("值不正确");}System.out.println("值正确");}
}class MyException extends RuntimeException{//需要继承自RuntimeExceptionpublic MyException(String message){super(message);}
}

http://www.lryc.cn/news/438027.html

相关文章:

  • HighCharts图表自动化简介
  • 使用LDAP登录GitLab
  • 【2024】前端学习笔记5-表单标签使用
  • 数据结构--二叉树(C语言实现,超详细!!!)
  • 【将字符串变为空的编辑距离】
  • 卡特兰数的推理
  • 高精度治具加工的重要性和优势
  • 新版IDEA提示@Autowired不建议字段注入
  • adb的安装和使用 以及安装Frida 16.0.10+雷电模拟器
  • 解决移动端1px 边框优化的8个方法
  • 频带宽度固定,如何突破数据速率的瓶颈?
  • Linux网络编程 --- 高级IO
  • Python中给定一个数组a = [2,3,9,1,0],找出其中最大的一个数,并打印出来 求解?
  • 系统优化工具 | PC Cleaner v9.7.0.3 绿色版
  • JavaSE、JavaEE 与 JavaWeb 的详解与区别
  • HCIE和CCIE,哪个含金量更高点?
  • 2024.9.14 Python与图像处理新国大EE5731课程大作业,马尔可夫随机场和二值图割,校正立体图像的深度
  • 工业大模型市场图谱:53个工业大模型全面梳理
  • 【代码随想录训练营第42期 Day58打卡 - 图论Part8 - 拓扑排序
  • JVM内部结构解析
  • 誉龙视音频综合管理平台 RelMedia/FindById SQL注入漏洞复现
  • MATLAB系列01:MATLAB介绍
  • GEE 按范围导出 Sentinel-2 卫星影像
  • 队列OJ题——用队列实现栈
  • RK3588镜像打包制作,替换文件系统
  • Open-Sora代码详细解读(2):时空3D VAE
  • 基于微信平台的旅游出行必备商城小程序+ssm(lw+演示+源码+运行)
  • AI绘画:科技赋能艺术的崭新时代
  • 性能诊断的方法(四):自下而上的资源诊断方法和发散的异常信息诊断方法
  • GDPU Vue前端框架开发 计数器