首页 /  技术专区  /  Java 宽屏模式 >

异常

1.  什么是异常

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

2.  异常处理

程序中预先设置好对付异常的处理办法。

程序运行→异常→对异常进行处理→处理完毕,程序继续运行。

Java的异常处理是通过5个关键字来实现的:trycatch finallythrowthrows

image.png

捕捉异常:

try 执行可能产生异常的代码

catch 捕获异常

finally 无论是否发生异常,代码总能执行

声明异常:

throws 声明方法可能要抛出的各种异常

抛出异常:

throw 手动抛出异常

3.  try-catch块

使用try-catch块捕获异常,分为三种情况。

第一种情况,正常。

image.png

没有异常情况下,代码将会跳过catch执行下面的程序。

public void method(){

try {

      // 代码段(此处不会产生异常)

} catch (异常类型 ex) {

      // 对异常进行处理的代码段

}

// 代码段

}


 

第二种情况,出现异常。

image.png

try代码块中出现异常,会产生异常对象,通过catch进行异常匹配之后,程序继续执行。

public void method(){

try {

      // 代码段 1

      // 产生异常的代码段 2

      // 代码段 3

} catch (异常类型 ex) {

      // 对异常进行处理的代码段4

}

// 代码段5

}

第三种情况,异常类型不匹配。

image.png

try代码块出现异常,产生异常对象与catch异常类型不匹配,程序中断运行。

4.  在catch块中处理异常

加入用户自定义处理信息

System.err.println("出现错误:被除数和除数必须是整数,”+"除数不能为零。");

调用方法输出异常信息

e.printStackTrace();

5.  try-catch-finally

try-catch块后加入finally块。

是否发生异常都执行。

首先执行try代码块,有异常执行catch代码块后执行finally块后退出,无异常执行finally块退出。

 image.png

存在returntry-catch-finally

如果程序中存在return,先执行finally,再执行return退出。

public void method(){

try {

     // 代码段 1

     // 产生异常的代码段 2

} catch (异常类型 ex) {

     // 对异常进行处理的代码段3

     return;

}finally{

      // 代码段 4

}

}

6.  多重catch块

引发多种类型的异常。

Ø  排列catch 语句的顺序:先子类后父类。

Ø  发生异常时按顺序逐个匹配。

Ø  只执行第一个与异常类型匹配的catch语句。

public void method(){

try {

     // 代码段

     // 产生异常(异常类型2)

} catch (异常类型1 ex) {

     // 对异常进行处理的代码段

} catch (异常类型2 ex) {

     // 对异常进行处理的代码段

}

// 代码段

}

7.  声明异常

通过throws在方法后面声明异常,多个异常用逗号隔开。

public class Test7 {

         public static void divide() throws Exception {

                     //可能出现异常的代码

         }

         public static void main(String[] args) {

                    try {

                            divide();

                    } catch (Exception e) {

                            e.printStackTrace();

                    }

         }

//      public static void main(String[] args) throws Exception {

//                divide();

//      }

}

8.  抛出异常

通过throw手动抛出异常。

public void setSex(String sex) throws Exception {

                   if ("".equals(sex) || "".equals(sex))

                            this.sex = sex;

                   else {

                            throw new Exception(“性别必须是\"\"或者\"\"");

                   }

}

9.  异常体系结构

image.png

10.  自定义异常

image.png

11.  使用log4j记录日志

1.         在项目中加入log4jJAR文件

2.         创建log4j.properties文件

3.         配置日志信息

4.         使用log4j记录日志信息

配置日志信息:

### 设置Logger输出级别和输出目的地 ###

log4j.rootLogger=debug, stdout,logfile

### 把日志信息输出到控制台 ###

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.err

log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout

 

### 把日志信息输出到文件:jbit.log ###

log4j.appender.logfile=org.apache.log4j.FileAppender

log4j.appender.logfile.File=jbit.log

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n


上一篇: 接口
下一篇: 集合框架

头像
0/200
图片验证码