老大处理

        catch(IOException e) {

   {

  result=100/0;  //Level 3                

{

// UsingExceptions.java

             }

}

}

结果:

System.out.println(“in Level 1”);           

{

1、请阅读并运维AboutException.java示例,然后通过前面的几页PPT精通Java中贯彻充裕处理的基础知识。

  System.out.println(“Level 2:” + e.getClass().toString());
         

        {           

else if(score<0||score>100)

public class EmbededFinally {    

请通过
PrintExpressionStack.java示例精晓上述情节。依照对本讲多个示范程序的分析,请自行综合计算出Java多层嵌套相当处理的骨干流程。

      //double i=1, j=0, k;

  try {                

}

Scanner in=new Scanner(System.in);

      try {

System.out.println(“in main”);        

1个子类的throws子句抛出的充足,不能够是其基类同名方法抛出的老大对象的父类。

       }

            System.out.println(“发生ArithmeticException”);

    }

        }

// result = 100 / 0;  //level 1        

 

结果:

   {

try{           

finally

catch (Exception e) {              

{

}

   }

   public static void method2() throws Exception

             //System.exit(0);     

            //…

}

  // result=100/0;  //Level 2            

catch (Exception e)

try {            

      }

}

Java非凡处理通过几个基本点字try、catch、throw、throws、finally进行政管理制。基本历程是用try语句块包住要监视的讲话,假若在try语句块内出现万分,则11分会被抛出,你的代码在catch语句块中得以捕获到那一个可怜并做拍卖;还有以部分系统生成的丰硕在Java运营时自动抛出。你也足以通过throws关键字在章程上声称该办法要抛出相当,然后在措施内部通过throw抛出尤其对象。finally语句块会在艺术执行return之前实施,壹般结构如下:
 try{
  程序代码
 }catch(非凡类型1 非凡的变量名一){
  程序代码
 }catch(非凡类型二 万分的变量名二){
  程序代码
 }finally{
  程序代码
 }

当有多层嵌套的finally时,万分在差异的层系抛出 ,在分裂的职位抛出,或许会导致不相同的finally语句块执行各类。

{  

  finally {                

             }

    public static void main(String[] args)

}

Java中落实充足处理的基础知识:

            System.out.println(“发生ArithmeticException”);

}          

System.out.println(“优”);

finally语句块不自然会执行。

System.out.println(“输入数字过大或过小”);          

叁、写出CatchWho2.java程序运营的结果

    //则代码将不能编写翻译……

System.out.println(“Level 3:” + e.getClass().toString());
              

        }

}

             }

public class CatchWho {

score=in.nextDouble();

System.out.println(e.getMessage());           

      catch ( Exception e ) {

import java.io.*;

   }

}

System.out.println(“in finally”);        

    private static void throwsTest()
 throws ArithmeticException,IOException {

System.out.println(e.getMessage());

  try {              

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

     结果:

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

        }

}

      method3();

System.out.println(“被0除.  “+ e.getMessage());

printStackTrace:打字与印刷格局调用堆栈。

        System.out.println(“那只是三个测试”);

           System.out.println(  “ArrayIndexOutOfBoundsException” +
“/外层try-catch”);

{

   结果:

}        

            throw new ArithmeticException();

}

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

class AboutException {

      }

// result=100/0;  //Level 2          

//若是test方法注明抛出了比父类方法更大的不行,比如Exception

        try {

{

// methods inherited into all exception classes.

图片 1

}

   int i=1, j=0, k;

public class CatchWho2 {

   {

}

可采取printStackTrace 和 getMessage方法精通格外产生的情形:

        catch(ArithmeticException e) {

   {

catch (Exception e) {          

图片 2

}

  System.out.println(“In Level 1 finally”);        

   //System.out.println(k);

        try {

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

   }

        catch(ArrayIndexOutOfBoundsException e) { //越界

//throw new Exception(“Hello.Exception!”);

}         

4、请先阅读
EmbedFinally.java示例,再运转它,观看其出口并举行总结。

            throw new ArithmeticException();

   public static void method3() throws Exception

finally {           

int g(float h) throws OneException,TwoException

{

public class ThrowMultiExceptionsDemo {

      try {

// Demonstrating the getMessage and printStackTrace

import java.util.Scanner;

         e.printStackTrace();

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

             }

public void test() throws FileNotFoundException

            System.out.println( “ArrayIndexOutOfBoundsException” +
“/外层try-catch”);

System.out.println(“中”);

int result;        

             catch(ArithmeticException e) {

请看SystemExitAndFinally.java示例

             try {

}

OverrideThrows.java示例体现了Java的那么些语法特性。

图片 3

}

        }

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

图片 4

            throw new Exception();

        }

      JOptionPane.showConfirmDialog(null,”OK”);

图片 5

public class Grade {

ThrowMultiExceptions德姆o.java示例展现了相关本性。

        // 程序处理进度借使产生非常

import java.io.*;

            System.out.println(“捕捉卓殊”);

System.out.println(“Level 1:” + e.getClass().toString());        

    public static void main(String[] args) {

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

        //throw new ArithmeticException();

}

图片 6

    }

catch (Exception e) {                    

}

结果:

System.out.println(“及格”);

{

System.out.println(“不及格”);

}

      method2();

try{

else 

在意一个Java格外处理中的三个相比较奇特的地点:

不行的对象有三个来自,一是Java运维时环境活动抛出系统生成的可怜,而随便你是还是不是愿意捕获和处理,它总要被抛出!比如除数为0的格外。2是程序员本身抛出的相当,那个那多少个可以是程序员本人定义的,也足以是Java语言中定义的,用throw 关键字抛出特别,那种十分常用来向调用者汇报分外的1些消息。

finally {                    

可怜是针对方法来说的,抛出、申明抛出、捕获和处理万分都以在章程中开始展览的。

        }

        throw new IOException();

}              

结果:

}

}

FileInputStream fis =
new FileInputStream(“a.txt”);

   {

public static void main(String[] args)

}    

   }

}

        }

}               

    图片 7

            throwsTest();

  }

    public static void main(String[] args) {

   public static void main(String[] a)

   public static void method1() throws Exception

System.out.println(“In Level 2 finally”);        

      throw new Exception( “Exception thrown in method3” );

}      

  }

}        

}

    {      

                 System.out.println(
“ArrayIndexOutOfBoundsException” + “/内层try-catch”);

System.exit(0);        

{ …… }

try

public static void main(String args[]) {       

      k=i/j;

结果:

{            

    }

渴求程序必须怀有丰裕的健壮性,不管用户输入什 么样的始末,都不会崩溃。

  System.out.println(“in Level 3”);                      

public class OverrideThrows

     {

图片 8

 }            

        catch(ArrayIndexOutOfBoundsException e) {

finally       

                 throw new ArrayIndexOutOfBoundsException();

         System.err.println( e.getMessage() + “\n” );

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

catch(Exception e)

        catch(ArithmeticException e) { //算数

k = i/j;    // Causes division-by-zero exception

}

             catch(ArrayIndexOutOfBoundsException e) {

图片 9

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

                 throw new ArrayIndexOutOfBoundsException();

结果:

种种Throwable类的对象都有贰个getMessage方法,它回到二个字串,那一个字串是在Exception构造函数中传出的,平时让这一字串包括特定卓殊的相关新闻。

else

图片 10

double score;

System.out.println(“被0除”);

}                 

     {

}

     }

陆、编写一个主次,此程序在运作时必要用户输入2个 整数,代表某门课的考试战绩,程序接着给出“比不上格”、“及格”、“中”、“良”、“优”的下结论。

5、一个办法能够注脚抛出四个特别

if (e instanceof ArithmeticException)

import javax.swing.*;

public void test()throws IOException

                System.out.println(
 “ArrayIndexOutOfBoundsException” +  “/内层try-catch”);

System.out.println(“In Level 3 finally”);               

catch ( ArithmeticException e)

System.out.println(“in Level 2”);

public class PrintExceptionStack {

System.out.println(“输入的不是数字,请重新输入正确的数字”);

class Sub extends OverrideThrows

catch(Exception e){

}

}   

         method1();

    }

throw new Exception(“Exception is thrown in main”);

   public static void main( String args[] )

             try {

public class SystemExitAndFinally {  

System.out.println(“良”);

相关文章