当前位置:  技术问答>java相关

关于 throw exception

    来源: 互联网  发布时间:2014-12-30

    本文导语:  关于 throw exception public vodi MethodName() throws Exception1,Exception2 { ...... try {......} catch(Exception1 ){....} catch(Exception2 ){....} } 是否函数内可能产生的违例都得在第一行方法名后用throws 声明,我自己写了一段程序,...

关于 throw exception

public vodi MethodName() throws Exception1,Exception2 {
......
try {......}
catch(Exception1 ){....}
catch(Exception2 ){....}
}

是否函数内可能产生的违例都得在第一行方法名后用throws 声明,我自己写了一段程序,方法名称上没有声明可能产生的违例,方法在try 体内自己throw 一个违例也能正常被catch

为我解释一下好吗?

谢谢

|
你的程序是错的,除非你在catch(Exception1){...} catch(exception2) {...} 或其它的catch中又throw 出你声明throws出的那些个exception1, exception2,否则的话编译器会说你永远也不会抛出这些异常,会拒绝编译的。

异常声明原则是:
1、自已不想处理的异常才在方法声明里抛出(用throws说明),不过可以先捕获处理后再重新抛出也行。
2、自已已经捕获后不再重新抛出的异常不可以在方法中声明,也即不可以用throws说明。
3、RuntimeException及其各子类所声明的异常不用在throws里说明,可以捕获但不推荐。

你的那些代码可以这样改写:
public vodi MethodName() throws Exception1,Exception2 {
    ......
    try {......}    
    catch(Exception1 e){
      // 作一些处理后再度抛出
      ....;
      throw e;
    }
    catch(Exception2 e){
      // 作一些处理后再度抛出
     ....;
     throw e;
    }
    catch(OtherException e) {
     ....;
//  可以将其它类型的异常转换成你声明的异常,只要将下列语句的注释去掉即可。
//     throw new Exception1();
//     throw new Exception2();
    }
}



|
捕捉违例有两种写法:
第一种是在方法后用throws抛出,然后在调用方法的地方try和catch
第二种是直接在方法体try和catch

|
不用,写一个就行了。
你用try catck,就可以不用throw
反之也一样。

|
yeah,既然在内部能够catch,就没有必要thorw到外面去了。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.util.logging类logger的类成员方法: throwing定义及介绍
  • throw and throws
  • 请教关于 throws,throw,catch...
  • 关于throw和throws方法的区别?
  • 关于throw+throws+catch谁能给出一个简短(越短越好)而且简单(不要涉及太多别的知识点),还要完整的程序?
  • 谁能详细说明一下try catch和throws 和throw的区别和联系,具体用法……
  • throws怎么使用?谢谢
  • 怎么调用涵有THROWS的方法?
  • 我看一个头文件,不知道“__THROW”是什么意思,请教高人!
  • php开源软件 iis7站长之家
  • throws关键字是什么意思?
  • 初学java,对throw 抛出个新异常不很理解。请哪为高人可以帮忙解释下么?谢谢
  • 请教throws的用法,我的参考书上说得不明白。
  • 奇怪自己为什么不能抛出违例??throw new TimeOutException("time out");
  • 请问使用throw抛出异常时,如何自定义异常!!!
  • 关于try 和 throw 简单使用示例
  • 抛出throw异常和捕捉catch异常的问题?
  • 请问try ... catch 和 throw有什么区别,谢谢
  • mstest实现类似单元测试nunit中assert.throws功能


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3