异常知识点入门到实战就这一篇

核心提示Java 17 异常相关知识点思维导图对于一个程序来说,理想的状态下,是都能正确运行的, 但是总会因为软件和硬件的原因出现一些不可避免的异常以及错误。但是,在实际的开发中将不可能这么的理想,不按规则的数据和有问题的业务代码,在 Java 中

Java 17异常相关知识点

思维导图

对于一个程序来说,在理想的状态下,它是可以正确运行的,但是由于软件和硬件的原因,总会出现一些不可避免的异常和错误。但是在实际发展中,并不会那么理想。Java如何处理不规则数据和有问题的业务代码?让我们看一看。

可投掷的

这个类是Java语言中所有错误和异常的父类。Java虚拟机只会抛出该类的实例或其子类的对象作为异常或错误。当然,也可以由明确的语句触发。

他的直接子类包含两个,一个是错误,一个是异常。通常用于表示程序中发生了异常。

要在编译时检查对应的异常,Throwable的对象及其任何子类,只要不是RuntimeException和Error的子类,都会被编译器视为检查过异常信息。

并且这些实例中的异常对象是在上下文中新创建的,用于包含相应的相关错误信息和堆栈的跟踪数据。

这个类的定义是:

公共类Throwable实现可序列化

定义的施工方法:

除了构造函数,还有相应的方法。

示范案例:

错误

对于Error类,它是Throwable的一个子类,主要意思是一个正常运行的程序不应该试图去捕捉一个严重的问题。大多数情况错误都是异常情况,或者是开发人员无法控制的情况。比如跑步需要内存,内存不够。程序无法正常运行。它需要空进行程序存储,硬盘没有空。程序也有问题。

对于一个方法,不需要在其throws语句中声明,可能在方法执行过程中抛出,但是没有被捕获错误的子类。因为这些错误是不应该发生的异常,所以当编译器在编译时检查它们时,Error及其子类也会被视为未检查的异常。由于其不可预测性,大多数情况下无法捕捉到。你可以试着用系统等级来识别。

错误的定义:

公共类错误扩展Throwable

对应于此类的构造函数。

看源代码,发现没有扩展方法,只有构造函数。

并且所有的构造函数都调用父类的构造函数。

常见的错误消息有:IOError、linkageError。虽然linkageError并不常见,但是如果你是一个没有使用IDE的初学者,NoClassDefFoundError是很容易出现的。

当虚拟机加载类时,它不会发现相应类报告的错误。注意与ClassNotFoundException的区别,一个是异常,一个是错误。

常见的错误有:

NoClassDefFoundError {} .

语法定义:

Try{ //需要抛出类型异常的执行内容}catch{ // ex的信息}。

抛出应该用于抛出需要被捕获的异常。例如,下面的代码:

//类PublicStatic类< >中的forName方法引发ClassNotFoundException

使用此方法时,需要捕捉异常。

请尝试{ Class.forName} catch { system . out . println);}

正确的情况下不会提示错误,编译运行也没有异常。

此时,我们将相应的ExceptionTest修改为ExceptionTest2。然后运行测试。

PrintStackTrace可以用来打印相应的错误信息,在调试中经常用到,但是在线运行的项目不会用这个方法。

在这里,我们发现了异常使用场景,ClassNotFoundException类没有发现的异常。会有相应的异常信息。并检查其异常的定义。

公共类ClassNotFoundException扩展了ReflectiveOperationException

而ReflectiveOperationException继承了Exception。该类的定义如下:

公共类ReflectiveOperationException扩展了异常

如何使用自定义异常

从上面的观察可以发现,如果要使用异常,只需要继承异常类即可。或者继承RuntimeException类。

例如,定义自定义异常类CustException继承自Exception类,并定义相应的构造函数。

公共类CustException扩展了Exception { public cust Exception { } public cust Exception { super;} public CustException { super} public CustException { super} public CustException { super} }

编写测试类。因为您从Exception继承,所以需要显示catch异常。如果未显示的捕获异常,编译时将会出错。

修改正常使用情况。

如果不想显式抛出异常,需要继承RuntimeException类。

代码如下:

然后试运行:

这里没有显示的使用了投掷。并且相应的异常不会被捕获。但是程序中不会出现突变错误。但是在运行的时候,需要解决由于运行不正常导致业务无法下去的问题。

例如,将传入的参数更改为“2”:

这里演示了null和type = "2 "的情况,并且会出现异常。所以这个时候,你需要捕捉。在实践中,这种工作将在顶层被捕获,并且向用户显示不是异常代码是很好的。

本文主要谈Java中的异常信息。大部分的异常代码都是Java 1.7之前的知识点。希望能给你一些代码方面的帮助。

感谢您的阅读、收藏、喜欢和关注。

要讲这些基础知识点,你要花大量的时间,深入下去,这样你的体系才会建立起来。因为在项目中学到的知识体系不会有断层。学习技术最快的方法是实战,学习技术系统最全面的方法是书本。当然,官方文件更新更好。因为第一手资料也很重要。但是你需要有很高的知识水平。刚开始的时候,你要知道哪些知识在实际工作中基本没用。如果学的好一点,目前对你没有影响。希望你早日找到适合自己的学习方式。走上一段楼梯。

 
友情链接
鄂ICP备19019357号-22