• 2020.7.27


    一、今日学习内容

       1、在java中如何进行异常处理:java异常处理的方法一般有两种,分别是使用try…catch…finally…和throws来操作。

       (1)Try…catch…finally…

               通过使用Try…catch…finally….语句处理异常,它捕获被命名为属于异常类的异常,并调用方法处理它。其中,finally 无论有无异常都会执行。

               Try...catch异常处理代码块的基本形式如下:

    try   //监视
        {
         可能发生异常的代码块;
         }
        catch (异常类型  异常对象名)      / /捕获并处理异常
          {
                 异常处理代码块;
           } finally{
                             / /最终执行
              }

            示例:使用Try…catch…finally…

    public class TryCatchFinally{
          public static void main (String[] args) {
              try{
                     int x=5;
                     int y=x/0;
                     System. out.println(y) ;
              }catch (Exception e) {
                      e.printstackTrace() ; //将错误打印到堆栈
               } finally{
                    System. out.println("Over!") ;
                }
            }
    }

           整数是不可以除以0的,因为这句代码会出现异常,所以用try…catch…finally…捕获它

           结果:

          

         示例:

    public class TryReturn {
           public static void main (String[] args) {
                  TryReturn t=new TryReturn() ;
                  int x =t.get();
                  System. out.printin("x="+x);
           }
           public int get() {
               int x=0;
               try{
                       x=5;
                       return x;
                } catch (Exception e) (
                     e.printStackTrace() ;
                }finally{
                    x=10;
                     return x;
                }
           }
    }

        输出结果:x=10

        如果将finally去掉,输出结果是x=5;从该结果可以看出,貌似finally没有执行一样,其实finally的语句是执行的,只不过方法是return 一个值, 只不过是从try 语句中返回的。其中finally可以省略。

       catch语句可以有多个,并且如果用户要捕获Exception,则将Exception放在最后,不能放在前面,否则会出错,可以简单理解为,如果要捕获多个异常,异常的范围要按照从小到大顺序叠放。

      示例:catch多个异常

    public class TryCatchFinally {
         pub1ic static void main(String[] args) {
           try{
                 int x=5;
                 int y= x/0;
                 System. out.println(y) ;
            } catch (IllegalArgumentException e) {
                    e. printStackTrace ();   //将错误打印到堆栈
            }catch (Exception e) {    //Exception的范围比较大,应该放在后面
                  e. printstackTrace(); *
            }
        }
    }

         总结:当抛出一个异常时,异常会由相应的catch语句捕获并处理。与一个try 相关的catch语句可以有多个,构成多重catch语句,异常类型决定了要执行哪个catch 语句。如果没有抛出异常,那么,try 代码块就会结束,并且会跳过它的所有catch语句,从最后一个catch后面的第一个语句继续执行。其实try语句也可以嵌入try语句,一个try代码块可以嵌入到另一个try代码块中。由于内部try代码块产生的异常如果没有被与该内部try代码块相关的catch捕获,就会传到外部try代码块。

    public class TryCatchFinally { (
          public static void main (String[] args) {
               try {
                  try {
                         int x= 5;
                         int y=x/0;
                         System. out.println(y) ;
                   } catch (Exception e) {
                          e.printStackTrace() ;
               } catch (IllegalArgumentException e) {
                         e.printstackTrace() ;//将错误打印到堆栈
               } catch (Exception e) {// Exception的范围比较大,应该放在后面
                       e.printStackTrace() ;
               }
         }
    }

        (2)使用throws抛出异常

            声明抛弃异常是在一个方法声明中的throws子句中指明的。throws子句方法的基本形式:

               [修饰符]    返回类型   方法名( 参数1,参数2……) throws 异常列表 {  }

            示例:通过throws抛出异常

    public class ThrowsDemo{
            public static void main (String[] args) throws Exception {
                     int x=5;
                     int y=x/ 0;
                     System. out.println(y) ;
             }
    }

         throws子句中同时可以指明多个异常,说明该方法将不对这些异常进行处理,而是声明抛弃它们。

    二、遇到的问题

         对异常问题记得不清楚,多看多记

    三、明日计划

        继续学习第八章的内容

  • 相关阅读:
    Substrings(hdu 4455)
    打砖块(codevs 1257)
    AFO
    愿 你 出 走 半 生 , 归 来 仍 是 少 年
    洛谷 2691逃离
    51Nod 1021 石子归并
    洛谷 P3047 [USACO12FEB]附近的牛Nearby Cows
    codevs 2072 分配房间
    codevs 1388 砍树
    codevs 1288 埃及分数
  • 原文地址:https://www.cnblogs.com/wmdww/p/13387441.html
Copyright © 2020-2023  润新知