2020.10.30

一、今日学习内容:

今天学习的是老师再看课上讲的一些有关异常处理的知识。

1、异常:

异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况。许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象。

例如:数组越界和被0除。

2、关于异常:

异常处理的目的是依据实际情况提供不同的错误应对策略与手段,使程序更稳定,更安全。

异常处理的主要用途是提供准确的错误消息,解释失败的原因、位置和错误类型等,同时提供一定的恢复能力,尽可能地保证数据完整性不被破坏,并让程序能继续运行。

3、Java中的异常捕获语句

Try{
            //可能发生运行错误的代码;
        }
        catch(异常类型     异常对象引用){
            //用于处理异常的代码
        }
        finally{
            //用于“善后” 的代码
        }

Java 中所有可捕获的异常都派生自 Exception 类。

4、使用Java异常处理机制

(1)把可能会发生错误的代码放进try语句块中。

(2)当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。catch语句块中的代码用于处理错误。

(3)当异常发生时,程序控制流程由try语句块跳转到catch语句块。

(4)不管是否有异常发生,finally语句块中的语句始终保证被执行。

(5)如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。

5、JDK中与异常相关的类

6、Java中的异常分类:

Throwable类有两个直接子类:

Exception:出现的问题是可以被捕获的;

Error:系统错误,通常由JVM处理。

可捕获的异常又可以分为两类:

(1)Check异常:直接派生自Exception的异常类,必须被捕获或再次声明抛出

(2)Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象: throw new ArithmeticException(…);

Error示例:AssertionError

JDK1.4 以上提供了assert语句,允许程序在运行期间判断某个条件是否满足,不满足时,抛出AssertionError

例如:

public static void main(String[] args) {
                List<Integer> ints = Arrays.asList(1,2,3);
                int s = 0;
                for (int n : ints) { s += n; }
                assert s == 7;
    }

运行结果:Exception in thread "main" java.lang.AssertionError at Test.main(Test.java:14)

8、启用assert功能

默认情况下,assert功能是关闭的,可以在使用java启动JVM时添加参数-ea打开它。

二:遇到的问题

没有遇到什么问题;

三:明日学习计划:

明天继续学习异常处理的部分知识。

原文地址:https://www.cnblogs.com/marr/p/14175241.html