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("");

}

}

}

运行结果

 

原文地址:https://www.cnblogs.com/cyz123/p/6103123.html