java之异常

java之异常——Exception

代码运行中出现非正常性情况

1.编译时异常,比如少个分号结尾,比如调用的模块没有引入或者找不到

2.运行时异常,比如索引越界

 常见的异常有空指针异常,是因为拿了一个空对象去操作,java中不允许操作空对象

异常可以直接抛出异常,也可以捕获异常,捕获异常中还有多重捕获

注意:

1.如果某个方法中抛出了异常,其他方法在调用这个抛出异常的方法时,也需要抛出异常,因为下层的方法抛出的异常会传给上层的调用者

2.finally关键字,一般是加在try{}catch{}代码块后面,无论是否发生异常,finally代码块中的代码都会被执行,finally代码块中的代码一般是用来做回收资源等收尾的工作

任何执行try 或者catch中的return语句之前,都会先执行finally语句

 

获取异常信息常用方法

1.getMessage() :获取详细的异常描述信息

2.printStackTrace() :打印异常发生时的方法调用栈信息


package com.test01;

import java.io.*;
import java.util.Properties;

import java.util.zip.InflaterInputStream;

public class exceptionDemo {

//throws IOException 这是抛出IOException异常,除了抛出异常,我们还可以捕获异常
public static void main(String[] args) throws IOException {
//根据文件路径创建文件对象
File file = new File("src/main/resources/log4j.properties");
//Properties类是专门用来解析Properties文件的
Properties properties = new Properties();
//除了直接抛出异常,还可以捕获异常,并处理异常或输入信息,art+ctrl+t 快捷键
try {
//准备一个输入流对象 ,将文件对象放到这个字节流对象中来,字节流对象是放在properties调用的load方法中
InputStream inputStream = new FileInputStream(file);
//调用load方法,从输入流中加载数据到对象中
properties.load(inputStream);
} catch (IOException e) {
e.printStackTrace();
//获取详细的异常描述信息
System.out.println(e.getMessage());
//打印异常发生时的方法调用栈信息
e.printStackTrace();
}
}
}
 
package com.test01;

import java.util.ArrayList;
import java.util.List;

public class exceptionDemo2 {
    public static void main(String[] args) {
        List<String> lists = new ArrayList<String>();
        try {
            lists.add("黄超");
            lists.add("大鹏");
            System.out.println(lists.get(3)); //会报IndexOutOfBoundsException
        } catch (Exception e) {
            System.out.println("索引错误"); //控制台输出索引错误
        }
    }
}

 

posted @ 2021-04-04 17:52  小boboa  阅读(54)  评论(0编辑  收藏  举报