Java基础之异常处理机制

作者: 坚持也是一种成功 | 来源:发表于2016-03-03 13:20 被阅读549次

一、异常处理机制
1、异常的祖先是Throwable,有如下两个子类:
a、Error:表示错误,错误产生后程序员不能通过代码的方式纠正,只能事先避免,好比生命已经停止。
b、Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的
2、 Throwable中的常用方法
public void printStackTrace();打印异常的详细信息
public String getMessage();获取发生异常的原因
二、异常分类:
1):编译时期异常:Checked:Exception类和他的子类,除了运行时期异常其他的就是编译时期异常.
2):运行时期异常:Runtime: RuntimeExeption类和RuntimeException的子类.
编译时异常: 要求我们必须处理异常(throws/try-catch),不处理,则编译不能通过.
运行时异常: 可处理,可不处理.

处理异常的方法:
1、使用try-catch
在开发过程中建议使用这个异常处理机制,进行专业处理。Try必须与catch或finally同在,不能单独使用,二者必须出现一个。finally块中的语句一定会执行,无论是否存在错误。除非在try或catch语句中出现了退出JVM的语句,不执行。
finally与return先后执行问题:

   public class FinallyDemo {
      public static void main(String[] args) {
    System.out.println(show());
   }

/* 判断return与finally哪个先执行:
 * 1、直接在try中返回一个变量
 * 2、在finally中让这个变量自增,打印出结果
 * 如果是finally先执行的那么finally执行完之后变量的结果就
 * 会自行的加一,如果是return先执行那么就会先返回在进行自增
 *  */
public static int show() {
    System.out.println("...start...");
    int mun = 1;
    try {
        return mun;
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
                    //一定会执行的代码快,除非在该代码执行之前          
                    //就执行了system.exit(0);就不会执行该代码块
            mun++;
        System.out.println(mun);
    }
    System.out.println("...end.....");
    mun++;
    return mun;
    }
}

2、抛出异常
抛出异常的方式有两种:
1):在方法的内部使用throw,抛出一个异常对象.如果抛出的异常是一个编译时期异常,就必须在方法后面声明抛出的异常类型,如果是运行时期的异常就不需要声明异常类型
如下面的程序,可能出现的编译时期异常有FileNotFoundException,与ArithmeticExcepting.就必须在方法后面声明,否则编译出错

Paste_Image.png

如果出现的异常为编译时期异常时,我们还可以将其转换成运行时期异常就不用在方法后面声明了。例如:

Paste_Image.png

JDK1.7中的throw的新特性:如果throw抛出的真实异常是编译时期异常也必须在方法后面声明异常类型

Paste_Image.png

2):在方法上使用throws声明可能抛出的异常类型.
这个方法是将异常交给调用者,此异常为非运行时期异常。一旦使用throws,当前方法就不再过问该异常,交给调用者处理。

相关文章

  • Java基础之异常

    Java基础之异常 目录 异常简单介绍 ThrowableErrorException 异常分类 如何处理异常异常...

  • Java基础之异常处理机制

    一、异常处理机制1、异常的祖先是Throwable,有如下两个子类:a、Error:表示错误,错误产生后程序员不能...

  • 别再徘徊了,好好学习

    Java中的异常处理机制的简单原理和应用?【基础】 答:当JAVA程序违反了JAVA 的语义规则时,JAVA 虚拟...

  • Java

    语言技能 JAVA基础 操作符、控制执行流程JAVA的重要特性:自动内存管理机制、异常处理。 ArrayList的...

  • Java异常简介及其架构

    Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理...

  • Java基础之异常处理

    Java基础之异常处理 在Java程序中,异常分为编译异常以及运行时异常 编译异常:程序在编译期间就出现的异常,必...

  • 异常处理

    JAVA严格的异常处理机制和类型检查机制 异常处理手贱异常非手贱异常 异常链处理 异常是在程序出错的时候能知道程序...

  • java 异常

    Java中异常处理是识别及响应错误的机制。有效地异常处理能使程序更加健壮。异常处理是非功能性需求。 异常的处理机制...

  • 第6章 Dart基础语法 -- 异常处理

    1. 异常的定义 Dart的异常处理机制参考了Java语言的异常处理机制。与Java语言不同的是,Dart中不存在...

  • 异常处理 ?处理(try-catch) :甩锅(throws)_

    本章概要 本章主要和大家一起学习java异常类的处理机制,深入学习java异常类。掌握异常处理机制,及背后的逻辑。...

网友评论

    本文标题:Java基础之异常处理机制

    本文链接:https://www.haomeiwen.com/subject/ahbgkttx.html