java学习笔记--异常和包

本文深入探讨了Java中的异常处理机制,区分了非运行时异常与运行时异常的特点及使用方式,并通过具体示例展示了如何使用try...catch块来捕获异常,以及如何利用finally块确保代码的执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//非运行时异常,必须通过throws声明或try处理
class ExceptionOne extends Exception
{
	ExceptionOne(String msg)
	{
		super(msg);
	}
}

//运行时异常,可以通过throws声明或try处理,也可以不作处理直接将控制权交给虚拟机
class ExceptionTwo extends RuntimeException
{
	ExceptionTwo(String msg)
	{
		super(msg);
	}
}

class ExceptionTest
{
	//非运行时异常
	//throws声明
	public void doExcceptionOneDeclare() throws ExceptionOne
	{
		throw new ExceptionOne("one wrong");
	}
	
	//调用声明了异常的函数时可以用try...catch块处理
	public void doExceptionOneTry()
	{
		try
		{
			doExcceptionOneDeclare();
		}
		catch(ExceptionOne e)
		{
			e.printStackTrace();
		}
	}
	
	//调用声明了异常的函数时也可以直接声明不处理
	public void doExceptionOneDeclareCall() throws ExceptionOne
	{
		doExcceptionOneDeclare();
	}
	
	//运行时异常
	public void doExceptionTwo()// throws ExceptionTwo,可写可不写
	{
		throw new ExceptionTwo("two wrong");
	}
	
	public void doExceptionTwoCall()// throws ExceptionTwo,可写可不写
	{
		doExceptionTwo();
	}
	
	public void doExceptionTwoTryCall()
	{
		//try...catch块可用可不用
		try
		{
			doExceptionTwo();
		}
		catch(ExceptionTwo e)
		{
			e.printStackTrace();
		}
	}
}
<pre name="code" class="java">//finally块是一定会执行的
class test
{
	public static void main(String[] args)
	{
		ExceptionTest et = new ExceptionTest();
		
		try
		{
			et.doExcceptionOneDeclare();
		}
		catch(ExceptionOne e)
		{
			e.printStackTrace();
		}
		finally
		{
			System.out.println("this must be execute, one");
		}
		
		try
		{
			et.doExceptionTwo();
		}
		finally
		{
			System.out.println("this must be execute, two");
		}
	}
}



//定义包跟把类文件放在指定文件夹下差不多,编译时记得指定路径,不然要手工创建
//文件夹很麻烦,下面的定义相当于将本文件中定义的类放在./A/B/C/D路径下
package A.B.C.D;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值