java 异常 throw 和 throws 的区别

在java 中异常是指程序在运行期间可能出现的一些错误,或状况,干扰了程序的正常运行,如果不对其进行处理程序就会中断。在java 中异常被封装成一个个对象,这些对象都是Throwable 子类的实例,下面是java 异常类结构图。 


Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。

Exception(异常):是程序本身可以处理的异常  

异常的处理:异常的处理有两种方式

throw向上抛出异常 如果一个底层的方法会产生一个异常,那么向上抛异常就是把这个异常抛给方法的调用者,让方法的调用者去处理这个异常,如方法的调用者也处理不了这个异常,也可以继续向上抛出,直到这个异常被 try catch。

try catch 捕获异常:

<span style="white-space:pre">		</span>try {
    <span style="white-space:pre">		</span>// 可能会发生异常的程序代码
<span style="white-space:pre">		</span>} catch (Type1 id1){
   <span style="white-space:pre">	</span> <span style="white-space:pre">	</span>// 捕获并处置try抛出的异常类型Type1
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>catch (Type2 id2){
    <span style="white-space:pre">		</span> //捕获并处置try抛出的异常类型Type2
<span style="white-space:pre">		</span>}
                try {
			// 可能会发生异常的程序代码
		} catch (Type1 id1) {
			// 捕获并处理try抛出的异常类型Type1
		} catch (Type2 id2) {
			// 捕获并处理try抛出的异常类型Type2
		} finally {
			// 无论是否发生异常,都将执行的语句块
		}

throw 和 throws 的区别: throw是直接抛出一个异常,throws 是如果一个方法内有异常抛出,那么这个方法需要声明抛出了这个异常

<span style="white-space:pre">	</span>public T peek() throws EmptyStackException{
		<span style="white-space:pre">	</span>if(isEmpty())
		<span style="white-space:pre">	</span>{
			t<span style="white-space:pre">	</span>hrow new EmptyStackException();
		<span style="white-space:pre">	</span>}else{
			<span style="white-space:pre">	</span>return stack[top-1];
		<span style="white-space:pre">	</span>}
	<span style="white-space:pre">	</span>}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值