程序中的 异常 分为两种 运行异常 与 检查异常。
那么什么是异常呢?
异常就是没考虑到的情况出现了,导致程序无法继续运行(异常 错误)。
比如一个人去买东西,身上带了两元钱,要买一个杯子(五元)。
掏钱的时候发现钱不够,接下来呢?
你可以回家取钱,可以向朋友借钱,也可以从银行卡里取钱,但是程序可以吗?程序到这里只能
停止了。这时候就是运行异常了。运行期间出现异常。
所以你就要用到 try catch ,如果捕获到 钱不够 的异常,就 如何如何
这样以来,这个异常就被你处理了。这个被你处理的异常就是 检查异常
总而言之,检查型异常就是我们考虑到了可能出现异常的情况,然后通过代码处理出现该异常时程序
该如何做而不会导致程序停止。
而那些没有考虑到的异常就会导致程序无法继续运行,当遇到这类的异常我们就会分析原因,
找到解决方法,然后把它写到代码里,让这个异常也成为 检查异常。
答:
异常就是出现了阻止我们顺利做事情的 情况,而如果事先考虑到了这个情况,我们就会想好如何
去处理它,而不会因为这个异常终止我们的事情。如果我没有考虑到这个情况,我们就不知道如何
处理它。
我们处理异常的宗旨是什么?
处理异常的宗旨就是为了让程序能够正常的运行。
出现异常不可怕,分析了原因,想到了解决方法,然后再把它变成代码写在 try catch 里。
下次出现这个异常就不会导致程序终止了。
所以一个健壮的容错性强的程序就是把不同环境中出现的 运行异常 变成 检查异常 的结果。
检查异常 和 运行异常 在代码中有何区别?
在上面我们已经说明了 检查异常 与 运行异常 的意义与区别。
在代码中,如果是运行时异常,我们可以不用方在 try catch 块中,因为我们根本就不知道该
如何去处理这个异常来保障程序的正常运行。如果是 检查异常,我们就要对这个异常进行处理,既然
是检查异常,我们应该已经有了处理这个异常的方案,所以就要用 try catch 处理这个异常来保障
程序运行。
导致程序无法继续运行 的情况除了 异常 还有 错误,那么什么是错误呢?
比如你买火车票去了,火车站通知说所有的火车因大雪停止运营了。
你要访问远程机器,可是网络因断线而断网了。
这就是错误,我们知道程序因它而停止,我们确没办法处理它,这就是错误。
比如要读取文件,可文件所在的磁盘存在坏道导致无法读取,这个错误你知道了也没办法。(除非你做的软件就是为了修复磁盘逻辑坏道的)
Exception: (检查型)在程序中必须使用 异常处理块
RuntimeException :(非 检查型)可以不使用 异常处理块,如果有异常产生,将由 JVM 进行处理。
常见的RuntimeException:
ClassCastException
NullPointerException
ArrayIndexOutOfBoundsException
IllegalArgumentException
NumberFormatException
相关推荐
Java异常处理运行时异常(RuntimeException)详解及实例 Java异常处理是Java编程中一个非常重要的概念,RuntimeException是Java异常处理中的一种特殊类型的异常。在Java中,异常可以分为两大类:Checked Exception...
- **使用合适类型的异常**:对于可预见的情况使用 `RuntimeException`,对于不可预见但需要处理的情况使用 `Exception`。 - **记录异常**:在生产环境中,捕获到异常后应记录日志,便于后期分析问题。 通过上述分析...
18.1 异常类结构与组成 Java中的异常都源自`java.lang.Throwable`类。Throwable有两个主要的子类:`Error`和`Exception`。`Error`类通常用于表示系统级别的严重问题,例如系统崩溃、虚拟机错误等,这些错误通常是不...
在开发过程中,我们可能会遇到使用Checkstyle时出现的异常情况,例如:“Got an exception - java.lang.RuntimeException: Unable to get class information for **Exception”。这种错误通常是因为Checkstyle在分析...
- 其他异常继承自 `Exception` 类,是已检查异常,如 `IOException`、`SQLException` 等,这些异常通常表示程序运行时可能遇到的外部问题,比如文件未找到、网络连接失败等。已检查异常需要在方法声明中使用 `...
`ArithmeticException`是Java中`java.lang`包的一部分,它继承自`RuntimeException`。这种异常通常发生在表达式计算过程中遇到错误的情况,比如除以零。当程序执行到这样的代码行时,如果不捕获这个异常,程序会立即...
在Java编程中,`java.lang.RuntimeException` 是一个非检查异常(unchecked exception),它表示程序运行时出现的不正常情况。通常,这类异常是由于程序员的错误或代码逻辑的疏忽造成的,例如类型转换错误、空指针...
- **RuntimeException 及其子类**:这类异常通常是由于程序设计问题引起的,如数组越界 (`ArrayIndexOutOfBoundsException`) 或除零错误 (`ArithmeticException`)。 #### 四、异常处理的基本结构 异常处理的核心...
解决 java.lang.RuntimeException: Could not generate DH keypair异常处理。 bcprov-ext-jdk15on-1.60、bcprov-jdk15on-1.60两个包放到jre下的$JAVA_HOME/jre/lib/ext的路径下,然后配置$JAVA_HOME/jre/lib/...
Runtime Exception 可以继承 java.lang.RuntimeException 或 java.lang.Error。例如,NullPointerException 就是一个 Runtime Exception: public class testException { public void method2(String msg) { if ...
在 Java 中,自定义异常通常继承自 `Exception` 或其子类。例如,你可以创建一个名为 `CustomServiceException` 的异常类,它可能包含特定的错误码和错误信息: ```java public class CustomServiceException ...
Java中Error与Exception的区别 Java 中的 Error 和 Exception 是两个不同的概念,它们都是 Throwable 的子类,但它们之间存在着许多不同之处。 首先, Error 类和 Exception 类都继承自 Throwable 类,这一点是...
`Exception`进一步分为两大类:`RuntimeException`(未检查异常)和非`RuntimeException`(已检查异常)。 ##### 2. 异常分类 - **RuntimeException**:这类异常通常是由于程序员的疏忽或者错误导致的,理论上可以...
Throwable是Java语言中所有错误与异常的超类,包含两个子类:Error(错误)和Exception(异常)。Error定义了一些运行时的错误,例如VirtualMachineError、NoClassDefFoundError等,这类错误一般表示代码运行时JVM...
异常类(`Exception`)是 `Throwable` 类的一个子类,它又分为两大类:检查性异常(`Checked Exception`)和运行时异常(`Runtime Exception`)。本篇将重点讨论运行时异常及其常见类型。 #### 运行时异常(`...
"异常捕获与抛出的问题,什么时候应该try,什么时候应该throws" 在 Java 中,捕获异常和抛出异常是两种不同的机制,分别用于处理不同的异常场景。 捕获异常(try-catch) 捕获异常是指在方法内部使用 try-catch ...
Java 异常类的层次图包括 Throwable、Error、Exception、RuntimeException 等几个类。Throwable 是 Java 语言中所有错误或异常的超类。Error 和 Exception 是 Throwable 的两个子类,表示严重错误和非严重错误。...
`Exception`是为应用程序异常设计的,而`Error`是为系统异常保留的。 4. **编程实践中**:程序员应尽量避免抛出`Error`,因为它们通常表示系统层面的问题。相反,`Exception`应该被广泛使用,以处理程序运行中的预期...
2. 检查异常( checked exception):这些异常是`Exception`类的子类,但不是`RuntimeException`的子类,如`IOException`、`SQLException`,编译器强制要求必须捕获或声明。 异常处理的最佳实践: 1. 不要忽视异常...
未检查异常继承自 `RuntimeException` 类。 ```java public void divide(int a, int b) { System.out.println(a / b); } ``` 在这个例子中,如果 `b` 为零,会抛出 `ArithmeticException`,这是一个未检查异常,...