专业3合1网站建设,域名连接到网站吗,简述电子商务网站的建设,网站获取客户信息需要备案吗一、Java异常#xff08;Exception#xff09;基本概念
什么是异常#xff1f;
简单来说#xff0c;异常就是程序运行时发生了意外的“错误”或者“不正常现象”#xff0c;导致程序中断。异常处理的目标是让程序在出现问题时能稳住#xff0c;不会直接崩溃。
1.1 异常…一、Java异常Exception基本概念
什么是异常
简单来说异常就是程序运行时发生了意外的“错误”或者“不正常现象”导致程序中断。异常处理的目标是让程序在出现问题时能稳住不会直接崩溃。
1.1 异常的分类
Java中的异常分为两大类错误 (Error) 和 异常 (Exception)。 错误 (Error) 通常由硬件或操作系统问题引起Java程序无法解决。例如内存不足OutOfMemoryError。 异常 (Exception) 包括两种 运行时异常 (RuntimeException) 这类问题可以不处理程序不会强制要求但最好避免。例如 ArithmeticException除数为零。ArrayIndexOutOfBoundsException数组越界。NullPointerException对象为空时调用方法。 一般异常 (Checked Exception) 必须处理否则程序无法编译。例如 IOException输入输出错误。ClassNotFoundException类或接口找不到。
1.2 异常的处理方法
处理异常有两种主要方式
直接处理 用try...catch块捕获并处理异常或在finally中清理资源。抛出异常 将异常交给调用方法的“上一层”去处理。使用throw或throws关键字完成。 二、异常捕获和处理
2.1 try/catch捕获异常
try...catch类似于“保险计划”。当程序执行到try块时如果一切正常就跳过catch块。如果有异常程序会直接跳转到相应的catch块处理问题。
try {// 可能出问题的代码
} catch (异常类型 e) {// 如果发生了指定类型的异常就执行这里的代码
} finally {// 无论是否发生异常这里的代码总会执行比如释放资源
}示例代码
假设我们访问数组中的某些元素可能会发生数组越界异常。
try {String[] greeting {Hello!, Welcome!};System.out.println(greeting[3]); // 这里会引发异常
} catch (ArrayIndexOutOfBoundsException e) {System.out.println(捕获到异常 e);
} finally {System.out.println(无论如何这段代码总会执行。);
}运行结果
捕获到异常 java.lang.ArrayIndexOutOfBoundsException执行 finally 块 打印释放资源或其他操作。 2.2 finally的作用
finally块保证了无论是否发生异常特定代码一定会执行。常见用法包括关闭文件、释放锁、关闭数据库连接等。 三、throw与throws
3.1 throw关键字
用来抛出一个异常对象一般用于方法内部。
if (value 0) {throw new IllegalArgumentException(Value cannot be negative.);
}3.2 示例捕获后再次抛出异常
当catch捕获异常但无法完全解决时可以修改异常对象然后抛出给上一层处理。
public static void main(String[] args) {try {methodWithException();} catch (Exception e) {System.out.println(再次捕获到异常 e);}
}public static void methodWithException() {try {int[] array {1, 2};System.out.println(array[3]); // 引发异常} catch (ArrayIndexOutOfBoundsException e) {System.out.println(捕获到异常 e);throw e; // 再次抛出} finally {System.out.println(Finally 块中的代码总会执行。);}
}运行结果
捕获到异常java.lang.ArrayIndexOutOfBoundsException再次捕获到异常。 四、异常处理的运行结果对比
4.1 没有异常处理时
如果没有捕获异常程序直接中断。例如
public static void main(String[] args) {String[] greeting {Hello, Hi};for (int i 0; i 4; i) {System.out.println(greeting[i]); // i2 时数组越界}
}运行结果java.lang.ArrayIndexOutOfBoundsException程序直接退出。 4.2 加入异常捕获后
通过try/catch捕获异常后程序可以正常运行不会中断。例如
public static void main(String[] args) {String[] greeting {Hello, Hi};for (int i 0; i 4; i) {try {System.out.println(greeting[i]);} catch (ArrayIndexOutOfBoundsException e) {System.out.println(捕获异常 e);} finally {System.out.println(Finally 块中的代码。);}}
}运行结果
正常打印数组内容。捕获并处理越界异常。每次循环都执行finally块中的代码。 五、总结 异常的意义 通过处理异常程序能在意外情况下继续运行而不会中途崩溃。 try/catch语法 捕获并处理异常catch块里定义如何处理。 finally 任何情况下都要执行的操作比如释放资源。 抛出异常 如果catch不能完全解决问题可以将异常“甩锅”给上层。
通过有效的异常处理我们可以编写更加健壮、容错性更强的程序。
最后说一句(求关注求赞别白嫖我) 最近无意间获得一份阿里大佬写的刷题笔记一下子打通了我的任督二脉进大厂原来没那么难。 这是大佬写的 7701页的BAT大佬写的刷题笔记让我offer拿到手软 本文已收录于我的技术网站 cxykk.com程序员编程资料站有大厂完整面经工作技术架构师成长之路等经验分享
求一键三连点赞、分享、收藏
点赞对我真的非常重要在线求赞加个关注我会非常感激