Java异常

本文介绍了在iOS环境中使用CURL库遇到的问题及解决方案,包括CURLE_SSL_CONNECT_ERROR错误处理,以及如何通过multi调用避免阻塞。此外,还提供了在Android平台上编译CURL库的方法。

检查型异常(CheckedException)

编译时可能产生的异常称为受检查异常,受检查异常是在编译时,由编译器检测出Java程序可能会抛出的异常。

受检异常必须明确处理:捕获或者抛出。

例如:

  • InterruptedException
  • FileNotFoundException
  • ClassNotFoundException
  • NoSuchMethodException

受检查异常并不多,而且现在的IDE都会提示你受检查异常,真正需要注意的是不受检查异常。

运行时异常(RuntimeException)

运行时可能产生的异常称为不受检查异常,即运行时异常。

RuntimeException 是所有运行时异常的超类。与检查型异常(Checked Exception)不同,RuntimeException 不需要在方法签名中声明,也不需要进行显式的捕获或声明 throws。如果代码中出现了 RuntimeException,它通常是由于程序中的逻辑错误或非正常操作导致的,例如数组越界、空指针访问等。
  • 运行时异常不需要throws声明,即使是方法层层调用,也能抛出到最上层后再用try-catch捕捉。
  • 运行时异常虽然可以捕捉,但是没必要捕捉,除非功能特殊需要。

常见的运行时异常

  • NullPointerException‌ - 尝试在空对象上调用方法或访问字段。
  • ArrayIndexOutOfBoundsException‌ - 访问数组时使用了无效的索引。
  • ClassCastException‌ - 试图将对象强制转换为不是实例的子类。
  • ArithmeticException‌ - 发生不适当的运算,如除以零。
  • IllegalArgumentException‌ - 向方法传递了一个不合法或不适当的参数。
  • IllegalThreadStateException
  • NumberFormatException‌ - 尝试将一个字符串转换成数字,但该字符串没有有效的数字格式。

不受检查异常是Java程序在其运行期间可能发生的异常,这类异常用RuntimeException对象(继承自Exception类)表示,具有不可预估性。

  • 第一,受检查是受编译器检查,最常见的受检查异常是IOException。
  • 第二,受检查异常和不受检查异常都可以被捕获,这点可以通过catch块中的对象类型显示出来。
  • 第三,没有捕获的不受检查异常如果发生了,异常将会层层往外抛出直到能够处理异常为止,如果异常没有处理,调用方法的线程将抛出异常。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值