• 谈谈Java的异常处理


    1.很多新手碰到异常处理的时候都偷懒不想看,觉得没有必要,其实只是新手的代码就那么几行还体会不到异常处理的好处,自然不想看了嘛,可是学习不是马虎的事嘛!!那么我们为什么需要异常处理呢??
    早期的编程语言(比如C语言)没有异常处理,通常是遇到错误返回一个特殊的值或设定一个标志,并以此判断是不是有错误产生。随着系统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。于是在一些语言中出现了异常处理机制,比如在Basic中的异常处理语句"on error goto”,而Java则在C++基础上建立了新的异常处理机制.
    2.Java中的异常处理
    Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。

      异常处理还有一个好处是在你不能确定和处理异常时,你可以不处理,而把问题提交上去。另一方面,异常处理机制使得错误处理代码更有条理,更便于维护
     
    3.Java的异常处理类
    在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。

      Throwable类有两个标准子类:java.lang.Error和java.lang.Exception即错误和异常。错误Error类一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这一类错误无法恢复或不可能捕获,将导致应用程序中断。异常Exception类则是指一些可以被捕获且可能恢复的异常情况,如数组下标越界ArrayIndexOutOfBoundsExcepton、数字被零除产生异常ArithmeticException、输入/输出异常IOException等。

      提示:Java编译器要求Java程序必须捕获或声明所有非运行时的异常,如:FileNotFoundException、IOException等。因为,对于这类异常来说,如果程序不进行处理,可能会带来意想不到的结果。但运行时出现异常可以不做处理,因为这类异常很普遍,全部处理可能对程序的可读性和运行效率产生影响
     
    3.Java中的异常处理的两种方式:
    (1).使用try...catch关键字;
     
    try {
      // Code that might generate exceptions
    } catch(Type1 id1) {
      // Handle exceptions of Type1
    } catch(Type2 id2) {
      // Handle exceptions of Type2
    } catch(Type3 id3) {
      // Handle exceptions of Type3
    }finally
    {
      ....
    }
    注意:finally块中的代码一定执行的,不管异常处理的怎么样
    有时为了确保一段代码不管发生什么异常都要被执行,可以使用关键词finally来标出这样一段代码。一个成员函数返回到调用它的成员函数,或者通过一个没捕捉到的异常,或者通过一个明确的return语句,finally子句总是恰好在成员函数返回前执行
     
    (2) .使用throw,throws关键字
  • 相关阅读:
    PHP 创建二叉树镜像(交换左右子树)
    PHP 使用二叉树的先序和中序遍历结果构造二叉树
    PHP 不用求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
    PHP 不用加减乘除做加法
    PHP 跳台阶问题
    PHP 输入一个整数,求该整数的二进制表达中有多少个1
    PHP 输入两个整数n 和m,从数列1,2,3.......n 中随意取几个数, 使其和等于m ,要求将其中所有的可能组合列出来
    PHP 查找链表倒数第i个节点
    .Net/C# 实现: FlashFXP 地址簿中站点密码的加解密算法
    johnsuna 的收藏精品
  • 原文地址:https://www.cnblogs.com/xiaoyunxiao/p/2411885.html
Copyright © 2020-2023  润新知