zoukankan      html  css  js  c++  java
  • 自定义异常以及runtime类

     

            一、自定义异常:

    1、自定义异常的概念:在java编程中,我们会遇到很多问题,但是这些问题异常,java并没有给我们定义好,那么我们就要自己定义这些异常,这就是自定义异常;

    2、throws 是声明异常的,它在函数的后面,后面接异常类名;而throw 是抛出异常的,它定义在函数的里面,后面跟异常对象。如果没有定义抛出,遇到异常,会默认产生一个异常对象,然后抛给函数的调用者,最后会抛给虚拟机,虚拟机调用默认处理方法进行处理。

    3.注意所有的自定义异常都要继承Exception这个父类,才能调用父类中的方法,进行抛出操作。

    4,在使用getMessage()方法获取信息时,没有信息,我们可以在自定义类中,对对象进行初始化,而且可以调用Exception中的方法,在构造函数中写上super(message);就可以了。

    下面通过代码来体现以上特点:


    class ExceptionDemo4
    {
     public static void main(String[] args)
     {
       Rid r=new Rid();
       try
      {
       int x=r.function(4,-1);
          System.out.println("x="+x);
      }
      catch(Exception e)
      {
       System.out.println("chu shu is fushu");
       System.out.println(e.getMessage());
       System.out.println(e);
       e.printStackTrace();
      }
      System.out.println("over");

     }
    }
    //定义一个异常类
    class ShuFuException extends Exception
    {
     private String message;
     ShuFuException(String message)
     {
      //this.message=message;
      super(message);
     }
     //父类中已经定义好了getMessage的功能,我们直接
     //拿来用就可以了
     
    }
    //定义一个功能类
    class Rid
    {
     public int function(int a,int b)throws ShuFuException
     {
      if(b<0)
       throw new ShuFuException("除以负数了");
      return a/b;
     }
    }

         二、Exception类中有一个特殊的异常子类,就是Runtime类,运行时异常

    如果在函数里面抛出异常,即使函数后不声明异常,一样可以编译运行。

    如果函数后面声明了异常,即使调用该方法的函数不做出处理,编译一样可以通过,只是没有结果。

    所以当异常不需要处理时,我们就继承RuntimeException异常来处理,无法在进行运算时,都要继承这个异常。

  • 相关阅读:
    项目UML设计(团队)
    项目选题报告答辩总结
    UIGestureRecognizer 手势
    CGAffineTransform 图像处理类
    block 应用说明
    Runtime-iOS运行时应用篇
    runtime之归档和解档
    Runloop
    加锁处理
    2017年浙江工业大学之江学院程序设计竞赛决赛 I: qwb VS 去污棒(可持久化Trie+离线)
  • 原文地址:https://www.cnblogs.com/warrior4236/p/6055732.html
Copyright © 2011-2022 走看看