抛出异常和捕获异常的区别

原创 2013年12月04日 10:14:56

 

抛出异常:如果程序中出现了异常,没有办法将具体的异常打印出来,不做任何处理

 

捕获异常:如果程序出现了异常,就能够详细的打印是什么原因导致了异常并且能够做出相应的处理,能够显示详细的Log

 

如果代码是抛出异常的方式,在运行时出现异常,并且打印的Log不明显,可以改用try{}catch方式来捕获异常,打印出详细的信息

 

throws语句   

throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或 RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序的正常部分中是不期待出现的。 如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。  

 

throw语句   

throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。

public class MyException extends Exception {

	String msg;

	MyException(int age) {
		msg = "age can not be positive!";
	}

	public String toString() {
		return msg;
	}
	
}

 

package com.hb.exception;

public class Age {
	public void intage(int n) throws MyException {//
		if (n < 0 || n > 120) {
			MyException e = new MyException(n);
			throw e; // 是一个转向语句,抛出对象实例,停止执行后面的代码
		}
		if (n >= 0) {
			System.out.print("合理的年龄!");
		}
	}

	public static void main(String args[]) {
		int a = -5;
		try { // try catch 必需有
			Age age = new Age();
			age.intage(a);// 触发异常
			System.out.print("抛出异常后的代码");// 这段代码是不会被执行的,程序已经被转向
		} catch (MyException ex) {
			System.out.print(ex.toString());
		} finally {// 无论抛不抛异常,无论catch语句的异常类型是否与所抛出的例外的类型一致,finally所指定的代码都要被执行,它提供了统一的出口。
			System.out.print("进入finally! ");
		}
	}
}

 

打印结果:

age can not be positive!进入finally! 

 

throw 是语句抛出一个异常;throws 是方法抛出一个异常;

throw语法:throw <异常对象>

在方法声明中,添加throws子句表示该方法将抛出异常。

throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]

其中:异常类可以声明多个,用逗号分割。

java异常——捕获异常+再次抛出异常与异常链

【0】README0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 java异常——捕获异常+再次抛出异常与异常链 的相关知识;【1】捕获异常相关1.1)如果某个...

JavaScript 异常与捕获(抛出异常)

异常(exception)与捕获 -> 书面解释:代码在运行过程中得到的中间结果与预期的结果不一致,就是异常。一般运行环境会抛出一个提示对象,中断程序运行,这个就是异常机制。 -> 通俗的...

Java异常的捕获和抛出

一、什么时候要考虑异常? 1,判断可能出现异常的地方啊,比如读取一个磁盘上的文件的代码,这里就得加异常,因为读取的时候可能文件被删除了 2.根据实际的业务来捕获异常如:文件读写、数据库连接、线程...

JAVA程序中抛出与声明异常

                                                                                         抛出异常上一篇文章中,...

Java 如何抛出异常、自定义异常

一、异常的抛出 1、定义 : 一个方法不处理这个异常,而是调用层次向上传递,谁调用这个方法,这个异常就由谁来处理。2、throw : 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可...

Java千百问_04异常处理(003)_如何抛出异常

java如何抛出异常 抛出异常使用throws/throw关键字。 throws关键字是什么 throws用来声明某一个方法可能抛出的异常,这个异常可以是系统定义的,也可以是自己定义的。 调用thro...

关于异常抛出机制

****************try catch使用********************************************************************* tr...

java异常的捕获与抛出原则

在可能会出现exception的地方,要使用try-catch或者throws或者两者都要。我的判断依据是:如果对可能出现的exception不想被外部(方法的调用者)知道,就在方法内部try-cat...

JAVA如何抛出异常

JAVA如何抛出异常  分享| 2011-07-07 13:54mengmeng2xiao | 浏览 49337 次  java 2011-07-07 13:59 ...

java基础(十)捕获异常还是抛出异常

1、 异常分类 a. RuntimeException 及其子类不要求捕捉,而其它的异常要求捕捉随便举几个 RuntimeException 子异常,有:数组越界异常、空指针异常、0作除数异常b. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:抛出异常和捕获异常的区别
举报原因:
原因补充:

(最多只允许输入30个字)