4.1 Java进阶(一)异常处理

一、异常概述

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不能配合使用



猜你喜欢

转载自blog.csdn.net/qq_40254536/article/details/80988005
今日推荐