异常
异常与错误的区别:
异常(Exception)是指在程序运行过程中遇到的一些意外情况,导致程序无法正常执行或出现错误结果的情况。异常是可以被捕获和处理的,通常是由于外部因素或程序逻辑错误导致的。在编程中,异常通常表示可预测的错误,可以使用异常处理机制进行捕获、处理和恢复,以保证程序的稳定性和可靠性。
错误(Error)是指在程序运行过程中发生的一些严重问题,导致程序无法继续执行或崩溃的情况。错误通常是由于系统环境、硬件故障、资源耗尽等无法预测和处理的情况导致的。与异常不同,错误往往表示程序无法从中恢复,需要通过系统级别的操作来解决,例如重启程序或重新配置系统环境。
总结来说,异常是可以被捕获和处理的,通常表示可预测的错误,而错误则是不可预测且无法处理的严重问题。在编程中,通过合理处理异常可以提高程序的健壮性和可维护性,而错误则需要通过系统级别的干预来解决。
异常的种类(Exception):
java中的异常分为两大类,一类是编译时异常(checked),另一类是编译时异常(Runtime)
异常处理机制
1.使用try{}catch{}语句块捕获异常,在try中的语句块如果出现异常由catch语句块进行捕获。且可以捕获多个异常,只需要声明多个catch语句块即可,java在jdk7之后,在一个catch语句块中可以捕获多个异常,每个异常之间由|隔开。如果java运行时找不到捕获异常的catch语句块,则运行时环境中止,java程序也将退出。在try中定义的变量为局部变量,只在try语句块中有用,在catch语句块中无法访问。
2.使用throws声明抛出异常,当目前方法不知道怎么处理异常时,该异常由上一级调用者处理,当main方法也不知道如何处理时,也可以使用throws抛给虚拟机,jvm对异常的处理,就是打印堆栈信息,然后中止程序进行。throws声明的异常仅限在方法签名中。一旦throws语句声明抛出该异常,就不需要使用语句块进行捕获了。
throws与throw的区别:
throws
关键字:
throws
用于方法声明中,用于指定该方法可能抛出的异常类型。- 当一个方法可能抛出异常时,可以使用
throws
关键字在方法签名中声明该异常,以通知调用者该方法可能引发异常。- 使用
throws
关键字后,方法的实现代码不会处理异常,而是将异常的处理责任交给方法的调用者。throws
可以指定多个异常类型,使用逗号分隔。
throw
关键字:
throw
用于在程序中手动抛出异常。- 可以使用
throw
关键字创建一个异常对象,并将其抛出。- 通常在代码中的某个条件满足时,使用
throw
抛出异常,以便中断程序的正常流程并传递异常信息。throw
后面必须跟一个异常对象或者是可以转换为异常对象的表达式。简要总结:
throws
用于方法声明,指定可能抛出的异常类型,将异常处理责任交给方法的调用者。throw
用于手动抛出异常对象,中断程序的正常流程并传递异常信息。
十大常见异常
- NullPointerException(空指针异常)
- IllegalArgumentException(非法参数异常)
- ArrayIndexOutOfBoundsException(数组索引越界异常)
- ClassCastException(类转换异常)
- ArithmeticException(算术异常)
- IndexOutOfBoundsException(索引越界异常)
- IOException(输入输出异常)
- FileNotFoundException(文件未找到异常)
- ConcurrentModificationException(并发修改异常)
- NoSuchElementException(元素不存在异常)