Java中什么是异常处理,java中什么是异常,为什么要异常及异常处理机制是什么

  Java中什么是异常处理,java中什么是异常,为什么要异常及异常处理机制是什么

  如何解决写爬虫IP受阻的问题?立即使用。

  Java中的异常,也称为Exception,是程序执行过程中发生的事件,它中断了正在执行的程序的正常指令流。为了及时有效地处理程序中的运行错误,必须使用异常类。

  异常简介

  在程序中,错误可能是由程序员无法控制的各种意外情况或环境引起的,如用户的坏数据、试图打开一个不存在的文件等。为了及时有效地处理程序中的运行错误,Java特别引入了异常类。

  例 1

  为了更好地理解什么是异常,让我们看一个非常简单的Java程序。下面的示例代码允许用户输入1~3之间的整数,其他情况下提示输入错误。

  包装ch11

  导入Java . util . scanner;

  公共类TestO1

  {

  公共静态void main(String[] args)

  {

  System.out.println(请输入您的选择:(1到3之间的整数));

  扫描仪输入=新扫描仪(system . in);

  int num=input . nextint();

  开关(数量)

  {

  案例1:

  system . out . println( one );

  打破;

  案例二:

  system . out . println( two );

  打破;

  案例三:

  system . out . println( three );

  打破;

  默认值:

  system . out . println( error );

  打破;

  }

  }

  }一般情况下,用户会根据系统提示输入1到3之间的数字。但如果用户没有按要求输入,比如输入一个字母“A”,程序运行时会出现异常,运行结果如下所示。

  请输入您的选择:(1到3之间的整数)

  a

  线程“main”Java . util . inputmismatchexception中出现异常

  at java.util.Scanner.throwFor(未知来源)

  位于java.util.Scanner.next(未知来源)

  at java.util.Scanner.nextInt(未知来源)

  at java.util.Scanner.nextInt(未知来源)

  位于text . text . main(text . Java:11)异常产生的原因及使用原则

  Java中出现异常有三个主要原因:

  1.Java内部错误是异常的,该异常由Java虚拟机生成。

  2.由编写的程序代码中的错误引起的异常,如空指针异常、数组越界异常等。这种异常称为未检查异常,在某些类中一般需要处理这些异常。

  3.由throw语句手动生成的异常称为check异常,通常用于向方法的调用方通知一些必要的信息。

  Java通过面向对象的方法处理异常。在运行一个方法的过程中,如果出现异常,方法会生成一个表示异常的对象,交给运行时系统,运行时系统会寻找相应的代码来处理异常。

  我们称生成异常对象并提交给运行时系统的过程为抛出异常。运行时系统在方法的调用堆栈中搜索,直到找到可以处理此类异常的对象。这个过程称为捕获异常。

  Java异常迫使用户考虑程序的健壮性和安全性。异常处理不应该用来控制程序的正常进程,它的主要作用是捕捉程序运行时出现的异常,并进行相应的处理。编写代码处理某个方法可能出现的异常时,可以遵循以下三个原则:

  1.在当前方法声明中使用try catch语句捕获异常。

  2.当一个方法被重写时,重写它的方法必须抛出相同的异常或异常的子类。

  3.如果父类抛出多个异常,override方法必须抛出这些异常的子集,而不是新的异常。

  异常类型

  在Java中,所有异常类型都是内置java.lang.Throwable类的子类,也就是说,Throwable位于异常类层次结构的顶部。Throwable类下有两个异常分支,Exception和Error,如图1所示。

  从图2可以看出,Throwable class是所有异常和错误的超类,有两个子类,Error和Exception,分别代表错误和异常。其中,异常类又分为运行时异常和非运行时异常,这两种异常差别很大,也叫未检查异常和已检查异常。

  异常类用于用户程序的可能异常,也用于创建自定义异常类型类。

  Error定义了一个在正常情况下不希望被程序捕获的异常。错误类型异常用于Java运行时,由系统显示与运行时系统本身相关的错误。堆栈溢出就是这种错误的一个例子。

  本章不讨论关于错误类型的异常处理,因为它们通常是灾难性和致命的错误,超出了程序的控制。本章的其余部分将讨论异常类型的异常处理。

  运行时异常都是RuntimeException类及其子类,如NullPointerException、IndexOutOfBoundsException等。这些异常是无检查异常,程序可以选择捕捉或不处理它们。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽量避免这种异常。

  非运行时异常是指RuntimeException以外的异常,属于Exception类及其子类。从程序语法的角度来看,这是一个必须处理的异常。如果不处理,程序就无法编译。如IOException、ClassNotFoundException、用户自定义异常,一般不定义用户自定义检查异常。表1列出了一些常见的异常类型及其功能。

  我们,大量免费的Java入门教程,欢迎在线学习!这就是java中异常的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: