1.

import javax.swing.*;

class AboutException {
public static void main(String[] a)
{
int i=1, j=0, k; try
{ k = i/j; // Causes division-by-zero exception
//throw new Exception("Hello.Exception!");
} // catch ( ArithmeticException e)
// {
// System.out.println("111被0除. "+ e.getMessage());
// } catch (Exception e)
{
if (e instanceof ArithmeticException)
System.out.println("被0除");
else
{
System.out.println(e.getMessage()); }
} finally
{
JOptionPane.showConfirmDialog(null,"OK");
}
}
}

2.

public class CatchWho {
public static void main(String[] args) {
try {
try {
throw new ArrayIndexOutOfBoundsException();
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println( "ArrayIndexOutOfBoundsException" + "/内层try-catch");
} throw new ArithmeticException();
}
catch(ArithmeticException e) {
System.out.println("发生ArithmeticException");
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println( "ArrayIndexOutOfBoundsException" + "/外层try-catch");
}
}
}

运行结果:

ArrayIndexOutOfBoundsException/内层try-catch
发生ArithmeticException

3.

public class CatchWho2 {
public static void main(String[] args) {
try {
try {
throw new ArrayIndexOutOfBoundsException();
}
catch(ArithmeticException e) {
System.out.println( "11ArrayIndexOutOfBoundsException" + "/内层try-catch");
}
throw new ArithmeticException();
}
catch(ArithmeticException e) {
System.out.println("22发生ArithmeticException");
}
catch(ArrayIndexOutOfBoundsException e) {
System.err.println( "33ArrayIndexOutOfBoundsException" + "/外层try-catch"); }
}
}

运行结果:

33ArrayIndexOutOfBoundsException/外层try-catch

4.

public class EmbededFinally {

    public static void main(String args[]) {

        int result;

        try {

            System.out.println("in Level 1");

             try {

                System.out.println("in Level 2");
// result=100/0; //Level 2 try { System.out.println("in Level 3"); result=100/0; //Level 3 } catch (Exception e) { System.out.println("Level 3:" + e.getClass().toString()); } finally { System.out.println("In Level 3 finally"); } // result=100/0; //Level 2 } catch (Exception e) { System.out.println("Level 2:" + e.getClass().toString()); }
finally { System.out.println("In Level 2 finally"); } // result = 100 / 0; //level 1 } catch (Exception e) { System.out.println("Level 1:" + e.getClass().toString()); } finally { System.out.println("In Level 1 finally"); } } }

结论:

当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块执行顺序。

5.

public class SystemExitAndFinally {

    public static void main(String[] args)
{ try{ System.out.println("in main"); throw new Exception("Exception is thrown in main"); //System.exit(0); } catch(Exception e) { System.out.println(e.getMessage()); System.exit(0); } finally { System.out.println("in finally"); } } }

结论:

finally不一定会执行

最新文章

  1. 让ABAP开发者愈加轻松的若干快捷键
  2. C# 在excel表格中检索并导出数据
  3. iOS 打电话、发短信、邮件、打开网址、调用应用等合集
  4. css hack 整理
  5. 【转】简单的虚拟摇杆控制移动(NGUI)
  6. python_way day10 python和其他语言的作用域 、 python2.7多继承和3.5多继承的区别 、 socket 和 socketserver源码(支持并发处理socket,多进程,多线程)
  7. OpenCV3编程入门笔记(3)线性滤波、非线性滤波、图像深度、通道
  8. 4通用Makefile编写
  9. 学习使用:before和:after伪元素
  10. jquery插件开发规范
  11. css定义的权重
  12. java基础:修改数组对应下标的数据
  13. python3学习笔记(2)
  14. 【.Net边角料系列】1-单例模式(我真不是你想的那样)
  15. VMware NAT做端口映射
  16. C#结婚吧(if else if)
  17. ORA-03135 防火墙超时设置断开db link 连接
  18. spring核心之AOP学习总结二
  19. Python3基础 file open 打开txt文件并打印出全文
  20. oracle 查版本号

热门文章

  1. H3C H3C设备DNS功能实现
  2. Java内存溢出java.lang.OutOfMemoryError: PermGen space
  3. op挂载摄像头
  4. 【Linux】centos查看防火墙是否关闭
  5. 用sublime 3搭建php 运行环境
  6. linux下文件的一些文件颜色的含义
  7. c++ 队列算法
  8. Visio高级应用部件
  9. JWT实现分布式Session
  10. saltstack操作