Java中的异常

异常

异常与错误的区别:

异常(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的区别:
  1. throws关键字:
  • throws用于方法声明中,用于指定该方法可能抛出的异常类型。
  • 当一个方法可能抛出异常时,可以使用throws关键字在方法签名中声明该异常,以通知调用者该方法可能引发异常。
  • 使用throws关键字后,方法的实现代码不会处理异常,而是将异常的处理责任交给方法的调用者。
  • throws可以指定多个异常类型,使用逗号分隔。
  1. throw关键字:
  • throw用于在程序中手动抛出异常。
  • 可以使用throw关键字创建一个异常对象,并将其抛出。
  • 通常在代码中的某个条件满足时,使用throw抛出异常,以便中断程序的正常流程并传递异常信息。
  • throw后面必须跟一个异常对象或者是可以转换为异常对象的表达式。

简要总结:

  • throws用于方法声明,指定可能抛出的异常类型,将异常处理责任交给方法的调用者。
  • throw用于手动抛出异常对象,中断程序的正常流程并传递异常信息。
十大常见异常
  1. NullPointerException(空指针异常)
  2. IllegalArgumentException(非法参数异常)
  3. ArrayIndexOutOfBoundsException(数组索引越界异常)
  4. ClassCastException(类转换异常)
  5. ArithmeticException(算术异常)
  6. IndexOutOfBoundsException(索引越界异常)
  7. IOException(输入输出异常)
  8. FileNotFoundException(文件未找到异常)
  9. ConcurrentModificationException(并发修改异常)
  10. NoSuchElementException(元素不存在异常)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java异常机制是一种用于处理程序执行期间可能出现的错误情况的机制。Java异常分为两类:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。其,受检异常必须在代码进行捕获和处理,否则编译器将会报错。而非受检异常则不需要在代码进行捕获和处理,但是如果不进行处理,会导致程序的异常终止。 Java异常机制通过抛出异常对象来表示程序出现的异常情况,通常情况下,异常对象包含了异常的类型、异常的消息以及异常发生的位置等信息。当程序执行过程出现异常情况时,就会抛出相应的异常对象,这个异常对象会被传递给调用栈上的上层方法,直到被捕获或者到达程序的顶层方法。 Java异常机制主要由三个关键字来实现:try、catch和finally。try块包含可能抛出异常的代码,catch块用于捕获并处理异常,finally块则用于执行一些必须要完成的代码,无论是否抛出异常都会执行。 下面是一个简单的Java异常处理的例子: ``` public class ExceptionDemo { public static void main(String[] args) { try { int num = Integer.parseInt(args[0]); System.out.println("10 / " + num + " = " + (10 / num)); } catch (ArithmeticException e) { System.out.println("除数不能为0"); } catch (NumberFormatException e) { System.out.println("请输入数字"); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("请至少输入一个参数"); } finally { System.out.println("程序执行完毕"); } } } ``` 在这个例子,我们使用了try-catch-finally关键字来处理用户输入的参数,当输入参数不满足条件时,就会抛出相应的异常。catch块用于捕获并处理异常,finally块则用于执行一些必须要完成的代码,无论是否抛出异常都会执行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值