异常

异常

try-catch-finally

在这里插入图片描述

第一种情况:正常

顺序:try块 — try-catch之后的代码块

public void method(){
	try {
  		// 代码段(此处不会产生异常)
	} catch (异常类型 ex) {
 		 // 对异常进行处理的代码段
	}
	// 代码段
}
第二种情况:出现异常

顺序:try块 — catch异常类型匹配 — 进入catch块 — try-catch之后的代码块

public void method(){
	try {
  		// 代码段 1
 	 	// 产生异常的代码段 2
 	 	// 代码段 3
	} catch (异常类型 ex) {
   	 	// 对异常进行处理的代码段4
	}
	// 代码段5
}
第三种情况:异常类型不匹配

顺序:try块 — catch异常类型不匹配 — 程序中断运行

public void method(){
	try {
		 // 代码段 1
		 // 产生异常的代码段 2
		 // 代码段 3
	} catch (异常类型 ex) {
	     // 对异常进行处理的代码段4
	}
	// 代码段5
}

在try-catch块后加入finally块
1.是否发生异常都执行finally块
2.不执行的唯一情况(System.exit(1);)
在这里插入图片描述
存在return的try-catch-finally块

public void method(){
	try {
	   // 代码段 1
	  // 产生异常的代码段 2
	} catch (异常类型 ex) {
	  // 对异常进行处理的代码段3
	  return;
	}finally{
		  // 代码段 4
	}
}

运行顺序:
在这里插入图片描述

调用方法输出异常信息:e.printStackTrace();

异常对象常用方法
常见异常类型

在这里插入图片描述

多重catch块

在这里插入图片描述

throw、throws

在这里插入图片描述

声明异常
public class Test7 {
	public static void divide() throws Exception {	//声明异常,多个异常用逗号隔开 
		  //可能出现异常的代码
	}
	public static void main(String[] args) {
	// 方式1:调用者处理异常
		 try {
			divide();
		 } catch (Exception e) {
			e.printStackTrace();
		 }
	}
//方式2:调用者继续声明异常
//	public static void main(String[] args) throws Exception {
//		 divide();
//	}
}
抛出异常
public class Person {
	private String name = "";   // 姓名
	private int age = 0;   // 年龄
	private String sex = "男";  // 性别
	public void setSex(String sex) throws Exception {
		if ("男".equals(sex) || "女".equals(sex))
			this.sex = sex;
		else {	//自行抛出异常
			throw new Exception(“性别必须是\"男\"或者\"女\"!");
		}
	}
}

异常的分类

在这里插入图片描述

用log4j记录日志

步骤:

  1. 在项目中加入log4j的JAR文件
  2. 创建log4j.properties文件
  3. 配置日志信息
  4. 使用log4j记录日志信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值