JAVA_SE基础知识——异常及异常处理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43841301/article/details/101053954

1.异常的发生

异常不是一定会发生的,是可能会发生

2、异常

异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序

3、java本身对异常的处理

java编程语言使用异常处理机制为程序提供了错误处理的能力
程序中预先设置好对付异常的处理办法,在程序运行中发现异常时,对异常进行处理,异常处理完毕后程序继续运行。

4、java中的异常处理的5个关键字

try  catch  finally  throws  throw
try:执行可能产生异常的代码
catch:捕获异常
finally:无论是否发生异常,代码总能执行
throws:声明异常,声明方法可能要抛出的各种异常
throw:抛出异常,   常

5、try、catch块捕获异常三种情况:

1、正常
  try中的代码块不会产生异常,则执行try-catch块后的代码块
2、出现异常
  try中代码块中有产生异常的代码段,从该代码段直接跳入catch
中对异常类型匹配,匹配完成,程序继续执行
  e.printStackTrace();//打印出现异常的堆栈信息,异常出现的结果和位置
3、异常类型不匹配
  try块中有产生异常的代码段,跳入catch块中寻找发现异常类型不匹配,程序
中断运行

try块不能单独存在,与catch块一起使用,一个try块可以有多个catch 

6、在catch块中处理异常

a、加入用户自定义处理信息:System.err.println("除数不能为0")
b、调用方法输出异常信息:e.printStackTrace();

异常对象常用的方法:
	void printStackTrace();//输出异常的堆栈信息
	String getMessage();//返回异常信息描述的字符串,是
	   printStackTrace()输出信息的一部分

7、常见的异常类型:

Exception	所有异常的父类
ArithmeticException	算术错误异常,如以零作为除数
ArrayIndexOutOfBoundsException	数组下标越界
NullPointerException	空指针异常
ClassNotFoundException	不能加载所需要的类
IllegalArgumentException	非法参数
ClassCastException	对象强转格式错误
NumberFormatException	数字格式转换异常,如把"abc"转换成数字

8、finally块中不执行的唯一情况:

在catch块中写 System.exit(1);//中断程序,退出java虚拟机,不执行finally块
“0”表示正常退出程序,“1”或非零表示非正常退出程序	

9、存在return的try-catch-finally块

try中发现异常-->产生异常对象-->异常类型匹配-->进入catch块-->执行finally块
  最后在执行 return退出方法

10、多重catch块

排列catch语句的顺序:先子类后父类
发生异常时按顺序逐个匹配
只执行第一个与异常类型匹配的catch语句

11、异常的俩种方式

    声明异常 throws Exception      方法体外,多个异常用逗号隔开
    抛出异常 throw new Exception();     方法体里

	处理时:继续声明异常或者使用try-catch块处理异常
		main方法声明的异常由java虚拟机处理

12、 Error与Exception

              Error:仅靠程序本身无法恢复的严重错误
	  |
Throwable-
	  |
	   Exception:由java程序抛出或处理的非严重错误
			
Exception包括运行时异常和检查异常;运行时异常,编译正常,运行时可能出错 
  不要求程序必须做出处理; 运行异常,编译都不能通过,程序必须处理该类异常。
检查异常:ClassNotFoundException; SQLException
运行时异常: ArithmeticException;NullPointerException;NumberFormatException

13、开源的日志记录工具—log4j

日志:主要用来记录系统运行中一些重要操作信息
      便于监视系统运行情况,帮助用户提前发现和避开可能出现的问题,或者出现问题
    后根据日志找到原因

日志分类:SQL日志,异常日志,业务日志

log4j是开源日志记录工具:
	控制日志的输出级别
	控制日志信息输送的目的地是控制台、文件等
	控制每一条日志的输出格式

使用log4j的步骤:a、在项目中加入log4j的JAR文件
		b、创建log4j.properties文件
		c、配置日志文件
		d、使用log4j记录日志信息

输出级别:fatal>error>warn>infor>debug

在方法外面建立一个日志对象:初始化
    private static Logger myLog=Logger.getLogger(Case1.class.getName());

猜你喜欢

转载自blog.csdn.net/weixin_43841301/article/details/101053954