Java异常

定义:

指在运行环境正常的情况下遇到的运行时错误。异常是非致命的,但也会导致程序的非正常终止.Java可以捕获和处理异常.

分类:

1.检查性异常

通常发生在用户层面,例如用户希望打开一个不存在的文件

2.运行时异常

是运行时可以被程序员避免的异常

3.错误

一般指程序运行时遇到的硬件或操作系统的错误,如内存溢出、不能读取硬盘分区、 硬 件驱动错误等。这是致命的,将导致程序无法运行,同时也是程序本身不能处理的。

体系结构:

Java中将异常分为两类,Exception和Errror,异常也当作一个对象来看待,被定义在基类java.lang.Throwable类中

常用方式:

使用多个关键字来实现:try,catch,finally.

try:

通常在try语句块中存放可能会发生错误和异常的代码块.当在try中发现错误或异常时,会终止执行try中的代码转而去执行catch.

catch:

在catch语句块中存放对应错误或异常的解决方案,一个try可以存在多个catch,用于捕捉不同的异常或错误.当捕获到异常时,程序会依次遍历,查找符合条件的catch再进行对应操作.类似与if,else if的执行顺序,所以代码块应该从上到下异常或错误的范围大小应该依次增大

finally:

是程序一定会执行的代码块,无论有没有发生异常或错误,哪怕出现异常或错误,也会先执行finally中的语句.如果在finally中的语句也发生异常或错误,那将是非常危险和不专业的.

Throwable表示所有异常和错误的类,Error表示错误类,Exception表示异常类

ps:Throwable后面跟着的e是一个随机变量,用于存储捕获的异常或错误,无实际意义,也可为n,m,a,b等未知数.

public class Abnormal 
{

	public static void main(String[] args) 
	{
		Scanner scanner = new Scanner(System.in);
		int c = scanner.nextInt();
		int a = 2;
		int b = 0;
		try//捕获异常
		{
			new Abnormal().a();
			System.out.println(a/c);
		}
		catch (Error e) 
		{
			System.out.println("栈溢出!");
		}
		catch(Exception e)
		{
			System.out.println("除数不能为0!");
		}

		catch (Throwable e)//想要处理的异常分类,Throwable>Error=Exception;catch(Throwable e)>catch(Error e)=catch(Exception e)
		{
			System.out.println("程序出现错误!");
			//Throwable能够处理所有异常和错误,Error和Exception分别是错误和异常的最大分支
		}
		finally//无论程序是否出现异常,都会执行finally语句块中的代码
		{
			//通常在程序存在I/O流操作时,用于关闭I/O流,
			scanner.close();
		}
	}
	public void a() {b();}
	public void b() {a();}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饭店孤孤单单

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值