爪哇中已检查和未检查的异常之间的区别
在这篇文章中,我们将看到Java中检查和未检查异常之间的区别。关于特殊处理的重要问题。
什么是例外?
异常是程序执行过程中不必要的情况。如果未正确处理异常,则可能导致程序异常终止。
什么是检查异常?
检查的异常是在编译时检查的那些异常。如果不处理它们,则会出现编译错误。
让我们借助示例来理解:
如果不处理检查的异常,将得到如下编译错误:
所以有两个选择两个可以解决上面的编译错误。
使用try和catch块:
您可以将容易出错的代码放入try块中,并在catch块中捕获异常。
例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
包 组织.Arpit.爪哇2blog; 进口 爪哇.io.FileInputStream; 进口 爪哇.io.FileNotFoundException; 进口 爪哇.io.IOException; 上市 类 CheckedExceptionMain { 上市 静态的 虚空 主要(串 args[]) { FileInputStream 菲斯 = 空值; 尝试 { 菲斯 = 新 FileInputStream(“ sample.txt”); 整型 c; 而 ((c = 菲斯.读()) != -1) { 系统.出.打印((烧焦) c); } 菲斯.关(); } 抓住 (FileNotFoundException e) { e.打印StackTrace(); } 抓住 (IOException e) { e.打印StackTrace(); } 抓住 (例外 e) { e.打印StackTrace(); } } } |
如您所见,我们已将容易出错的代码放入try块,并将各种异常放入catch块。使用throws:您可以使用throws关键字来处理异常。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
包 组织.Arpit.爪哇2blog; 进口 爪哇.io.FileInputStream; 进口 爪哇.io.IOException; 上市 类 CheckedExceptionMain { 上市 静态的 虚空 主要(串 args[]) 抛出 IOException { FileInputStream 菲斯 = 空值; 菲斯 = 新 FileInputStream(“ sample.txt”); 整型 k; 而 ((k = 菲斯.读()) != -1) { 系统.出.打印((烧焦) k); } 菲斯.关(); } } |
如您所见,我们已经使用throws关键字来处理异常。
什么是非检查异常?
例:
1 2 3 4 5 6 7 8 9 10 11 12 |
包 组织.Arpit.爪哇2blog; 上市 类 空指针异常Example { 上市 静态的 虚空 主要(串 args[]){ 串 力量=空值; 系统.出.打印(力量.修剪()); } } |
当您运行上面的程序时,您将获得以下异常:
1 2 3 4 |
例外 在 线 “主要” 爪哇.郎.空指针异常 在 组织.Arpit.爪哇2blog.空指针异常Example.主要(空指针异常Example.爪哇:7) |
另一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 |
包 组织.Arpit.爪哇2blog; 上市 类 ArrayIndexOutOfBoundExceptionExample { 上市 静态的 虚空 主要(串 args[]){ 串 力量Array[]={“阿尔伯特”,“约翰”,“马丁”}; 系统.出.打印(力量Array[4]); } } |
当您运行上面的程序时,您将获得以下异常:
1 2 3 4 |
例外 在 线 “主要” 爪哇.郎.ArrayIndexOutOfBoundsException: 4 在 组织.Arpit.爪哇2blog.ArrayIndexOutOfBoundExceptionExample.主要(ArrayIndexOutOfBoundExceptionExample.爪哇:7) |
你可以经历 面向初学者和经验丰富的Java核心面试问题 有关更多此类问题。