zoukankan      html  css  js  c++  java
  • Java 异常基础知识总结


    RuntimeException类是Exception类的子类,它叫做运行时异常,Java中的所有运行时异常都会直接或者间接地继承自RuntimeException类。

    RuntimeException

    Java中凡是继承自Exception,而不继承自RuntimeException类的异常都是非运行时异常。

    Exception在程序中必须使用try……catch进行处理;而RuntimeException可以不使用try……catch进行处理,但是如果有异常产生,
    则异常交给JVM(java虚拟机(java virtual machine))处理,程序无法处理。

    Throwable 类是 Java 语言中所有错误或异常的超类(这就是一切皆可抛的东西)。它有两个子类:Error和Exception。

    对于非运行时异常(checked exception),必须要对其进行处理,否则无法通过编译。
    处理方式有两种:
      1.使用try..catch..finally进行捕获;
      2.在产生异常的方法声明后面写上throws 某一个Exception类型,如throws Exception,将异常抛出到外面一层去。

    在定义一个方法时可以使用throws关键字声明,表示此方法不处理异常,而是交给方法调用处进行处理。

    throw直接抛出异常类的实例化对象。往往抛出程序中已经产生的异常类实例。

    1)
    class Math{
      public int div(int i,int j) throws Exception{      //此方法可以不处理异常,即说明此方法中即使
                                 不使用try……catch语句,所产生的异常也会由
                                调用处处理,例如下一个例子。
        System.out.println("…………计算开始…………");
        int temp = 0;
        try{
            temp = i/j;
        }catch (Exception e){
                    throw e; //把异常交给调用处
        }finally{
                System.out.println("…………计算技术…………");
        }
          return temp;
      }
    }

    public class ThrowDemo02 {

      public static void main(String[] args) {
        Math m = new Math();
        try {
            System.out.println("除法操作:"+m.div(10,0));
        }catch(Exception e){
            System.out.println("异常产生:"+e);
        }

      }

    }

    2)
    class Math{
      public int div(int i,int j) throws Exception{
          System.out.println("…………计算开始…………");
          int temp = 0;

          temp = i/j;

          return temp;
      }
    }

    public class ThrowDemo02 {

        public static void main(String[] args) {
          Math m = new Math();
          try {
              System.out.println("除法操作:"+m.div(10,0));
          }catch(Exception e){
              System.out.println("异常产生:"+e);
          }

        }
    }

  • 相关阅读:
    Silverlight 游戏开发小“.NET研究”技巧:动感小菜单 狼人:
    版本效果MoonWarrior cocos2dx版本 1
    输入执行GetChar缓存机制剖析
    集成实现Dynamics CRM 2011编程系列(55):Dynamics CRM 集成开发简述
    函数进程APUE学习Posix线程(1)
    进程子进程[Linux]操作系统算法实验一:进程控制实验
    矩阵函数机器学习Matlab 编程常用命令速览(NgMLclass Octave/Matlab Tutorial)
    buildconfigurationHow to use Boost in Visual Studio 2010
    安防硬件WIZnet基于全硬件TCP/IP的安防产品应用及方案
    路由器登录SSH 登录思科路由器RSA modulus too small处理
  • 原文地址:https://www.cnblogs.com/XuGuobao/p/6542106.html
Copyright © 2011-2022 走看看