Java 异常及处理
2021/11/11 22:15:10
本文主要是介绍Java 异常及处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
程序运行过程中发生的不正常行为叫做异常
异常体系图
Error
栈溢出
内存溢出
Exception
运行时异常
空指针异常
数学运算异常
类型转换异常 classCastException
数组下标越界异常
数字格式化异常 NumberFormatException
int a = Integer.parseInt("s");
编译时异常
是指代码在编译期间就必须处理的异常,否则代码不能编译通过
IOException
ClassNotFoundException
FileNotFoundException
SQLException
throw 和 throws 的区别
throw :手动生成异常对象的关键字,位置在方法体中, 用在方法体内,抛出具体的异常,由方法体处理。
throws:方法抛出的一个异常,可以声明多个,用逗号隔开,由方法调用方处理
try…catch…finally
当需要抛出多个异常,子类异常在前,父类异常在后
try…finally 等于没有抛出异常
try { int a = Integer.parseInt(""); }catch (Exception e){ e.printStackTrace(); }finally { System.out.println("打印finally"); } System.out.println("打印最后");
try { int a = Integer.parseInt(""); }finally { System.out.println("打印finally"); } System.out.println("打印最后");
执行顺序
try { int a = Integer.parseInt(""); return; }catch (Exception e){ e.printStackTrace(); System.out.println("异常"); return; }finally { System.out.println("打印finally"); }
try { int a = Integer.parseInt("3"); System.out.println("正常"); return; }catch (Exception e){ e.printStackTrace(); System.out.println("异常"); return; }finally { System.out.println("打印finally"); }
异常执行顺序
// 捕获异常后,程序会继续执行,aaa不会被执行 try { Integer a = null; a.equals("1"); System.out.println("aaa"); }catch (Exception e){ // 捕获异常 e.printStackTrace(); } System.out.println("程序继续执行"); java.lang.NullPointerException at com.zs.backend.test.Out.main(Out.java:8) 程序继续执行 try { Integer a = null; a.equals("1"); System.out.println("aaa"); }catch (Exception e){ // 捕获异常 //e.printStackTrace(); } System.out.println("程序继续执行"); 程序继续执行
自定义异常
public class Out { public static void main(String[] args) { int a = 10; if(a > 1){ throw new CC("异常"); } } } class CC extends RuntimeException{ public CC(String msg){ super(msg); } } > 1){ throw new CC("异常"); } } } class CC extends RuntimeException{ public CC(String msg){ super(msg); } }
这篇关于Java 异常及处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30java最新版本是什么,有什么特性?-icode9专业技术文章分享
- 2024-11-30[开源]27.8K star!这款 Postman 替代工具太火了!
- 2024-11-30Gzip 压缩入门教程:轻松掌握文件压缩技巧
- 2024-11-29开源工具的魅力:让文档管理更“聪明”
- 2024-11-29Release-it开发入门教程
- 2024-11-29Rollup 插件入门教程:轻松掌握模块打包
- 2024-11-29从零到一,产品经理如何玩转项目管理和团队协作
- 2024-11-29如何通过精益生产管理工具帮助项目团队实现精准进度控制?
- 2024-11-29低代码应用开发课程:新手入门与基础教程
- 2024-11-29入门指南:全栈低代码开发课程