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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。