• Java的异常处理


     一、引言

      软件系统应该为用户提供一套完善的服务,系统不仅要满足用户需求的功能,还需要具有可靠性、稳定性和容错性。要求软件系统不仅自身不能有错误,还要具备较强的抗干扰能力:在用户操作出现错误是,或遇到不可抗拒的干扰是,软件系统也不能放弃,而必须景最大努力排除错误继续运行。只有具备这样能力的软件系统才会具有更好的应用空间。Java语言的异常处理机制能够很好地解决以上问题。

     二、错误与异常

      1. 错误

      错误(error)是指程序遇到非常严重的不正常状态,不能简单地恢复执行,一般是在运行时遇到的硬件或OS的错误,如内存溢出、操作系统出错、虚拟机出错等。错误对于程序而言是致命的,将导致程序无法运行,而且程序本身不能处理它,而只能依靠外界干预,否则会一直处于非正常状态。例如,没有找到.class文件,或.class文件中没有main()方法等,将导致应用程序不能运行。

      2. 异常

      异常(exception)指非致命性错误,一般指在运行程序时硬件和OS是正常的,而程序遇到了运行错,如整数进行除法运算时除数为0,操作数超出数据范围,要打开一个文件时发现文件不存在,网络连接中断等。

      异常会导致原有程序非正常中止,但Java语言提供的异常处理机制使应用程序自身能够捕获异常,并且能够处理异常,由异常处理部分调整应用程序运行状态,使应用程序仍可继续运行。

      在编译和运行应用程序时,发现Java应用程序中的错误和异常并进行处理的流程图如图所示。

                       

     三、错误和异常的分类

      Java类库提供了许多处理错误和异常的类,主要分为两大部分:Error类和Exception类。

      Error类是错误类,该类由Java虚拟机生成并抛给系统,如内存溢出错误、栈溢出错误、动态链接错误等。当运行某一个类是如果没有main()方法,则产生错误NoClassDetFoundError;当使用new分配内存空间时,如果没有可用内存,则产生内存溢出错误OutOtMemoryError。

      Exception类是异常类,是Java应用程序捕获和处理的对象。每一种异常对应于Exception类的一个子类,异常对象中包含的错误的位置和特征信息。

      下面是一个异常程序的示例:

     1 /**
     2  * 除数为0的异常
     3  */
     4 public class ExceptionByZero{
     5 
     6     public static void main(String[] args) {
     7         int x = 6;
     8         int y = 0;
     9         System.out.println("x="+x);
    10         System.out.println("y="+y);
    11         System.out.println("x/y="+x/y);
    12     }
    13 
    14 }

      编译,运行结果如图所示:

      

     

  • 相关阅读:
    Mybaits源码分析九之sql执行流程
    Mybaits源码分析八之sqlSessiion的openSession方法
    Mybaits源码分析七之XMLConfigBuilder类mappers标签解析
    Mybaits源码分析六之XMLConfigBuilder类 environments标签解析
    Mybaits源码分析五之XMLConfigBuilder类 typeAliases 标签解析
    Mybaits源码分析四之XMLConfigBuilder类settings 标签解析
    ajax与axios与fetch的比较
    if else的优化
    js 类型
    模板字符串
  • 原文地址:https://www.cnblogs.com/ymyBlogs/p/8910027.html
Copyright © 2020-2023  润新知