Java中try-catch的使用及注意细节
作者:呀吖呀吖呀
现在有很多的语言都支持try-catch,比如常见的就是c++,java等,这篇文章主要给大家介绍了关于Java中try-catch的使用及注意细节的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
引言
🎈 Java中提供 try 和catch块来处理异常。try块用于包含可能出错的代码。catch块用于处理try块中发生的异常。可以根据需要在程序中有多个try…catch块。
1. 基本语法
try{ //可疑代码 //将异常生成对象的异常对象传递给catch块 }catch(异常){ //对异常进行处理 }finally{ } //可以没有finally
2. 注意细节
- 如果异常发生了,则异常发生后面的代码不会执行,直接进入到catch块
- 如果异常没有发生,则顺序执行try的代码块,不会进入到catch
- 如果希望发不发生异常都进入到某段代码段 例如:关闭数据库的连接,则使用 finally{ }
public static void main(String[] args) { //ctrl + alt +t try { String str = "123"; int a = Integer.parseInt(str); System.out.println(a); } catch (NumberFormatException e) { System.out.println("异常信息" + e.getMessage()); }finally { System.out.println("finally代码块被执行"); } System.out.println("程序继续"); }
运行结果为:
当更改为"abc"时
语句时再次运行:
4.可以有多个catch语句,捕捉不同的异常(进行不同的业务处理),要求父类异常在后,子类异常在前,比如Exception 在后 ,NullPointerException在前,如果发生异常,只会匹配一个catch
public class TryCatchDetai { public static void main(String[] args) { try { Person person = new Person(); person = null; System.out.println(person.getName()); int n1 = 10; int n2 = 0; int res = n1/n2; }catch (NullPointerException e){ System.out.println("空指针异常 " + e.getMessage()); } catch (Exception e){ System.out.println("算术异常" + e.getMessage()); }finally { } } } class Person{ private String name = "yayaya"; public String getName(){ return name; } }
运行的结果为:
但是实际上还有一个异常为算术异常 及分母不能为0,因为已经找到一个异常就不会捕获下一个异常。
将person = null;代码注销。
再次运行:
如果更改获取异常的顺序,编译器就会报错。所以父类异常需要在后,子类异常需要在前。
5.可以进行try-finally 配合使用,这种用法相当于没有捕获异常
所以程序会崩溃。但是finally一定会执行,例如:需要关闭数据库,一些必须要执行的代码
public class TryCatchDetail02 { public static void main(String[] args) { try { int n1 = 10000; int n2 = 0; System.out.println(n1/n2); }finally { System.out.println("执行finally"); } System.out.println("程序继续运行"); } }
当程序运行到n1/n2时候会报错,这个时候会先执行finally语句,执行完之后就崩溃。!!
运行结果为:
快捷键
全选住代码 ctrl + alt +t 选择6就可以一键生成try=catch
总结
到此这篇关于Java中try-catch的使用及注意细节的文章就介绍到这了,更多相关try-catch使用及细节内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!