zoukankan      html  css  js  c++  java
  • 第八周动手动脑

    一:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。

    代码:

    package 第八周;
    
    import javax.swing.*;
    
    class AboutException {
    public static void main(String[] a) 
    {
    int i=1, j=0, k;
    k=i/j;
    try
    {
    
    k = i/j; // Causes division-by-zero exception
    //throw new Exception("Hello.Exception!");
    }
    
    catch ( ArithmeticException e)
    {
    System.out.println("被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");
    }
    
    }
    }
    

      

    Throwable类有两个直接子类: Exception:出现的问题是可以被捕获的; Error:系统错误,通常由JVM处理。 可捕获的异常又可以分为两类: (1)Check异常:直接派生自Exception的异常类,必须被捕获或再次声明抛出 (2)Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象: throw new ArithmeticException(…);

    二:阅读以下代码(CatchWho.java),写出程序运行结果以及写出CatchWho2.java程序运行的结果。再阅读EmbedFinally.java示例,再运行它,观察其输出并进行总结。:

    代码:

    package 第八周;
    
    import javax.swing.*;
    
    class AboutException {
    	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"); 
    		} 
    		} 
    }
    

     截图: 

    public class CatchWho2 { 
    
    public static void main(String[] args) { 
    try {
    try { 
    throw new ArrayIndexOutOfBoundsException(); 
    } 
    catch(ArithmeticException 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"); 
    } 
    } 
    }
    

      

    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语句块一定会执行吗?

    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");
    
    }
    
    }
    
    
    }
    
    运行结果如下:
    

      

  • 相关阅读:
    jQuery.noConflict() 函数详解
    Meta标签用法大全
    解决
    如何在同一台服务器上安装多套通达OA
    Android UI设计系统-android selector 开始自定义样式
    Android UI设计系统---LayoutParams[转]
    jquery Ajax应用总结
    阿里云主机安装Memcached
    PHP搭建OAuth2.0
    制作干净系统 批处理删除所有设备驱动
  • 原文地址:https://www.cnblogs.com/lishengming00/p/9943274.html
Copyright © 2011-2022 走看看