zoukankan      html  css  js  c++  java
  • java异常处理

    动手动脑1.请阅读并运行AboutException.java示例。

     

    运行结果:

     
       

     

     

    动手动脑2.阅读以下代码(CatchWho.java),写出程序运行结果:

     

    运行结果:

    ArrayIndexOutOfBoundsException/内层try-catch

    发生ArithmeticException

     

    动手动脑3.写出CatchWho2.java程序运行的结果

     

    运行结果:

    ArrayIndexOutOfBoundsException/外层try-catch

     

    动手动脑4.请先阅读 EmbedFinally.java示例,再运行它,观察其输出并进行总结。

     

    运行结果:

    in Level 1

    in Level 2

    in Level 3

    Level 3:class java.lang.ArithmeticException

    In Level 3 finally

    In Level 2 finally

    In Level 1 finally

     

    总结:

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

    动手动脑5.finally语句块一定会执行吗?请通过 SystemExitAndFinally.java示例程序回答上述问题

     

    运行结果:

    in main

    Exception is thrown in main

    一定会执行finally语句块。

    动手动脑6.如何跟踪异常的传播路径?

     

    当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序。

    可使用printStackTrace getMessage方法了解异常发生的情况:

    printStackTrace:打印方法调用堆栈。

    每个Throwable类的对象都有一个getMessage方法,它返回一个字串,这个字串是在Exception构造函数中传入的,通常让这一字串包含特定异常的相关信息。

     

     

    课后作业

     

    源代码:

    import java.util.Scanner;

    class MyException extends Exception{

    public MyException(String msg){

    super(msg);

    }

    }

    class fen{

    int a;

    public void panduan(int x){

    a=x;

    if(a<60)

    {

    System.out.println("不及格!");

    if(a<40)

    System.out.println("");

    }

    if(a>=60){

    {

    System.out.println("及格!");

    if(a<=70)

    System.out.println("");

    if(a<80 && a>=70)

    System.out.println("");

    if(a>=80)

    System.out.println("");

    }

    }

     

    }

     

     

    }

    public class jige {

    public static void main(String []args)throws MyException{

    fen jg = new fen();

    System.out.println("请输入成绩:");

    try{

    Scanner scanner1 = new Scanner(System.in);

    String b = scanner1.next();

        boolean result=b.matches("[0-9]+");

    if(result==true)

    {

    int a=Integer.valueOf(b);

    if(a>100||a<0)

    throw new MyException("输入范围不正确!");

    else

    jg.panduan(a);

    }

    if(result==false)

    throw new MyException("输入格式错误!");

     

    }

    catch(MyException e){

    System.out.println(e);

    }

    }

    }

     

    运行结果截图:

     

     

     

     

     
       

     

     
       

     

     

     
       
  • 相关阅读:
    Maven关于web.xml中Servlet和Servlet映射的问题
    intellij idea的Maven项目运行报程序包找不到的错误
    修改Maven项目默认JDK版本
    刷题15. 3Sum
    刷题11. Container With Most Water
    刷题10. Regular Expression Matching
    刷题5. Longest Palindromic Substring
    刷题4. Median of Two Sorted Arrays
    刷题3. Longest Substring Without Repeating Characters
    刷题2. Add Two Numbers
  • 原文地址:https://www.cnblogs.com/shenghuizhang/p/6102823.html
Copyright © 2011-2022 走看看