• Java异常处理


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

    答:(1Java 中所有可捕获的异常都派生自 Exception 类。

       2)把可能会发生错误的代码放进try语句块中。

            当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。

    catch语句块中的代码用于处理错误。

           当异常发生时,程序控制流程由try语句块跳转到catch语句块。

           不管是否有异常发生,finally语句块中的语句始终保证被执行。

           如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。

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

     

    运行结果

     

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

     

    运行结果

     

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

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

     答:不一定

    6.写一个程序,此程序在运行时要求用户输入一个整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。

     1)源代码

        import java.util.Scanner;

    public class Number {

    public static void main(String[] args){

      Scanner in=new Scanner(System.in);

      System.out.println("请输入一个整数成绩:");

      int num ;

      

    while(true)

    {

    try{

    num=in.nextInt();

    if(num<0||num>100)

    throw new Exception();

    else 

    break;

    }

    catch(Exception e){

    System.out.println("输入错误");

    in.nextLine();

    }

    }

    if(num<60&&num>=0){

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

    }

    else if(num>=60&&num<70){

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

    }

    else if(num>=70&&num<80){

    System.out.println("");

    }

    else if(num>=80&&num<90){

    System.out.println("");

    }

    else if(num>=90&&num<=100){

    System.out.println("");

    }

    }

    }

    运行结果

     

  • 相关阅读:
    网络编程【二】socket(套接字)初识
    网络编程【一】操作系统的发展史
    面向对象【十三】类的魔术方法
    面向对象【十二】包装和授权
    面向对象【十一】类内置的attr属性
    面向对象【十】反射
    openwrt 编译错误
    修改openwrt 终端登录欢迎界面
    openwrt quilt 使用
    openwrt luci 入门介绍
  • 原文地址:https://www.cnblogs.com/cyz123/p/6103123.html
Copyright © 2020-2023  润新知