Throw/Throws区别和使用

throws E1,E2,E3 只是告诉程序这个方法可能会抛出这些个异常,方法的调用者可能要处理这些异常。而这些异常E1,E2,E3可能是该函数体产生的。

而throw是明确之处这个地方要抛出这个异常。

void doA() throws Exception1, Exception3 {
   try {
     ……
   } catch(Exception1 e) {
     throw e;
   } catch(Exception2 e) {
     System.out.println("出错了");
   }
   if (a != b)
     throw new Exception3("自定义异常");
}

  

代码块……中可能产生异常Exception1、Exception2和Exception3。
如果产生Exception1异常,则捕捉了之后抛出由该方法的调用者去做处理;
如果产生Exception2异常,则该方法自己做了处理(打印出了说出错了),所以该方法就不会再向外抛出Exception2异常了,void doA() throws Exception1,,Excpetion3里面的Exception2也就不用写了;
而Exception3异常是该方法的某段逻辑出错,程序员自己作了处理在该段逻辑错误的情况下抛出异常Exception3,则调用者也需要处理。

  • 如果方法体Throws Exception并没有被处理,方法头一定要声明throws这个Exception
  • 如果方法体没有具体Throws Exception,方法头声明throws这个Exception可以有可以不用加
时间: 2024-10-20 00:19:29

Throw/Throws区别和使用的相关文章

throw throws区别

1.throws是在方法上对一个方法进行声明,而不进行处理,向上传,谁调用谁处理: 格式: 权限修饰符 返回值类型 方法名(参数列表) throws Exception1,Exception2...{} 目的是声明这些异常,告诉方法的调用者它可能会抛出这些异常,是否需要捕获处理这些异常. 2.throw是实际抛出某个异常对象e try { String s=""; s.substring(0,2); } catch (Exception e) { // TODO Auto-genera

day08(异常处理,创建异常,finally,throws和throw的区别)

异常处理, 异常的产生  运行时异常:程序运行中产生的异常:RuntimeException类.   编译时异常:程序在编译时产生的异常:除了RuntimeException类  其他都是编译时产生的异常.    处理异常两种方式 抛出异常:把异常抛给调用者区解决   throws 抛出异常 捕获异常:编程者自己处理try....catch...finally... 创建异常, 1.自己创建sun公司的异常类对象 public class ClassException { public stat

(12)throws和throw的区别

函数上指写在小括号和大括号之间int div(int a ,intb) throws 后面跟异常 throw定义在函数内 后面跟异常对象 (12)throws和throw的区别

面向对象(throws和throw的区别)

/** * Created by Administrator on 2014/9/29. * * throws和throw的区别 * * throws使用在函数上,throw使用在函数内 * * throws后面跟的是异常类,可以跟多个,用逗号连接 * throw后面跟的是异常对象 */ //copyright?liupengcheng //http://www.cnblogs.com/liupengcheng class fushuException extends Exception {  

异常处理中throws和throw的区别?

异常处理中throws和throw的区别: 1.作用不同:throw用于程序员自行产出并抛出异常:throws用于声明在该方法内抛出了异常 2.使用的位置不同:throw位于方法体内部,可以作为单独语句使用:throws必须跟在方法参数列表的后面,不能单独使用. 3.内容不同:throw抛出一个异常对象,且只能是一个:throws后面跟异常类,而且可以有多个 原文地址:https://www.cnblogs.com/suger-4/p/12192418.html

try-catch和throw,throws的区别 (转)

// 最近又在捡起来JAVA,一些文档转载留给自己好好看看,出处不是很确定~ 希望自己能更努力 ~ java里的异常多种多样,这是一种非常有用的机制,它能帮助我们处理那些我们未知的错误,在java里,关于异常的有throw throws,还有一个try catch 程序块.接下来我们挨个看看这几个的作用. 1.throw throw 就是抛出一个异常,并获取这个异常的引用,这个异常会被抛到外部的环境,由外部环境进行处理 class A{ public void func() throws Exc

Java基础(一)异常处理关键字:try catch finally throw throws

嗨咯,大家晚上好,我的博客首篇开始了 ,我们一起加油吧! 都说java 语言是非常健壮性 如:垃圾回收机制.内存模型.异常处理,强类型转换.跨平台,等等,使得Java语言的受到青睐.今天我们先来聊聊java的异常处理机制try catch finally throw throws,平时我们貌似小瞧了这五个关键字.开发应用系统,良好异常的处理对系统后期的开发.维护.升级.用户的体验尤其重要. 异常有个非常重要的特征,从出现异常的位置 到 最顶端的main方法 如果你一直没catch到它,最终jvm

浅谈Java throw, throws, try catch异常处理

1.throws关键字通常被应用在声明方法时,用来指定可能抛出的异常.多个异常可以使用逗号隔开.当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象.如下面例子所示: public class Shoot {   创建类 static void pop() throws NegativeArraySizeException { //定义方法并抛出NegativeArraySizeException异常 int [] arr = new int[-3];//创建数组 } public

try-catch和throw,throws的区别

区别一:throw 是语句抛出一个异常:throws 是方法抛出一个异常: 在方法声明中,添加throws子句表示该方法将抛出异常.如果一个方法会有异常,但你并不想处理这个异常,就在方法名后面用throws,这样这个异常就会抛出,谁调用了这个方法谁就要处理这个异常,或者继续抛出. throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>] 其中:异常类可以声明多个,用逗号分割. ***区别二:throw