检查型异常(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块中的对象类型显示出来。
- 第三,没有捕获的不受检查异常如果发生了,异常将会层层往外抛出直到能够处理异常为止,如果异常没有处理,调用方法的线程将抛出异常。
本文介绍了在iOS环境中使用CURL库遇到的问题及解决方案,包括CURLE_SSL_CONNECT_ERROR错误处理,以及如何通过multi调用避免阻塞。此外,还提供了在Android平台上编译CURL库的方法。

5054

被折叠的 条评论
为什么被折叠?



