一、异常概述
1、异常(Exception),错误(Error):编码过程或执行过程出现异常就会导致错误。
2、异常分类:
(1)编译异常(checked异常)
(2)运行时异常(runtime异常)
3、Exception异常是一般异常的父异常
二、各种具体异常
1、算术异常
public class Main {
public static void main(String[] args) {
int num=5/0;
System.out.println(num); //java.lang.ArithmeticException 算术异常
}
}
2、找不到指定的类
public class Main {
public static void main(String[] args) {
try
{
Class.forName("com.mysql.jdbc.Driver");
//java.lang.ClassNotFoundException 找不到指定的类
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
3、空指针异常
public class Main {
@SuppressWarnings("null")
public static void main(String[] args) {
User user=null;
System.out.println(user.getUsername());
//java.lang.NullPointerException 空指针异常
}
}
4、数据越界
public class Main {
public static void main(String[] args) {
int[] num=new int[5];
num[5]=10;
System.out.println(num[5]);
//java.lang.ArrayIndexOutOfBoundsException 数据越界
}
}
扫描二维码关注公众号,回复:
2083715 查看本文章
三、异常处理
1、一旦方法被声明抛出异常,那么在使用该方法的时候就需要处理该异常
例如:
2、解决办法:利用try、catch、finally、throws、throw
(1)继续抛出
public class Main {
public void goHome() throws Exception
{
/*
* throws
*/
}
public static void main(String[] args) throws Exception {
Main mi=new Main();
mi.goHome();
}
}
(2)利用try...catch去捕获使用该方法是可能出现的异常
public class Main {
public void goHome() throws Exception
{
/*
* throws
*/
}
public static void main(String[] args) {
Main mi=new Main();
try {
mi.goHome();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("aa");
}
}
}
3、try...catch...finally的用法
(1)三个处理方法都不能单独使用
(2)try...catch、try...finally可以配合使用
(3)catch...finally不能配合使用