异常处理
异常:是代码在运行时出现不正常的现象,如果不及时处理,就会出现jvm不正常的运行
Java 异常处理
异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。
比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。
异常发生的原因有很多,通常包含以下几大类:
-
用户输入了非法数据。
-
要打开的文件不存在。
-
网络通信时连接中断,或者JVM内存溢出。
这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。-
要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:
-
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
-
运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
-
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
异常抛出机制:
-
不同异常用不同的异常类表示,可以自己创建异常对象,throw这个异常;
-
程序员也可catch这个异常对象,并处理,如果没有catch这个对象,那么该异常对象就会终止掉这个程序
如何对待异常:
-
遇到错误就终止程序的运行
-
程序员在编写程序时,就充分考虑到各种可能的发生的异常或错误,实现避免,实在无法避免,就应该编写相应的代码进行异常检测,以及处理,保证代码的健壮性。
处理异常有两种方式:
-
抓,try - catch - finally
-
抛 ,throws /throw
在开发中,运行时异常一般我们根据红线提示修改就好了,编译时异常就要用到抛和抓来处理。
throw后的代码不能被执行,编译不通过。
throw和throws的区别:
throw是使用在方法块里面的,只能抛出一个异常实例,而throws是紧跟在方法体后面的,他可以抛出多个异常,抛出的是异常的类。
自定义异常的定义:
-
继承于现有的异常体系,通常继承于RuntiException\Exceotion
-
通常提供几个重载的构造器
-
提供一个全局变量,声明为Stactic final long SerrialversionUID
注意:
标签:错误,编译,处理,程序员,异常,throw From: https://www.cnblogs.com/jessi200/p/17205785.html