Exception Rule

原创 2003年03月07日 08:46:00

Exception

Exception异常处理,是Java的重要特性之一。Exception分为两种,一种是System Exception(系统异常),一种是Application Exception(应用程序异常)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

System Exception(系统异常)继承RuntimeException类,不需要显示的catch或者throw

Application Exception(应用程序异常)继承RuntimeException类之外的Exception,必须显示的catch或者throw

(说明: RuntimeException类是Exception类的子类。)

以下的代码throws所有异常。

void func( …) throws Exception{

}

这样的代码,屏蔽了包括系统异常在内的所有异常。在这样的函数中,调用任何有可能抛出异常的代码,也不会有任何编译错误。而且,调用这个函数的代码必须写成如下:

try{

      

       func(..)

      

}catch(Exception e){

}

以上的代码能够catch包括系统异常在内的所有异常,一般只出现测试程序中。这种异常处理方法屏蔽了所有异常。建议显示的抛出特定的应用程序异常。代码如下:

void func( …) throws ServletException{

 // 如果有其它的异常,必须包装成ServletException 抛出

       try{

       }catch(SQLException e){

              throw new ServletException(e);

       }

}

调用这个函数的代码写成如下:

try{

      

       func(..)

      

}catch(ServletException e){

}

// 如果需要catch包括系统异常在内的所有异常,可以在后面加入如下语句。

catch(Exception e){ }

finally

在涉及到资源释放(比如,数据库资源,文件资源)的函数里,函数的出口数目是一个需要考虑的问题。一般的解决方法是,尽量让这种函数只在函数结束处有一个出口。由于逻辑的复杂性,不可能强求做到这一点。可以使用finally机制来控制。

例如,下面的代码

 

void func( ..) throws ServletException{

       if(...)

         return; // won’t go finally block

 

       try{

             

              if(…)

                return; // will go finally block

             

       }catch(SQLException e){

              throw new ServletException(e): // will go finally block

       }catch(IOException e){

              return; // will go finally block

       }finally{

              // release resource

       }

}

 

android将library发布至jcenter的趟坑之路

最近接手了一个sdk的任务,虽然原有任务已经比较多了,哈哈哈。一般sdk让别人用可以打成jar包,但是如果是有资源文件的就不行了,就可能需要打成aar包让别人依赖了,但是这有个不好的地方每次自己的sd...
  • submit66
  • submit66
  • 2017年04月09日 22:41
  • 1914

jcenter 的一点总结

使用jcenter 的过程中,遇到一点问题,问题以后会不断出现,所以坑也要不停地填 开始使用 app 作为上传的 library,出现如下错误于是新建一个 android library名为“myl...
  • Handsonn
  • Handsonn
  • 2016年04月22日 13:37
  • 1231

使用vivado进行逻辑开发时,进行到Generate Bitstream时报错

使用vivado进行逻辑开发时,进行到Generate Bitstream时报错,如下:   [Drc 23-20] Rule violation (NSTD-1) Unspecified...
  • hemmingway
  • hemmingway
  • 2014年09月29日 14:55
  • 14464

A generic architecture for integrating rule engines .pdf

  • 2009年03月23日 10:33
  • 236KB
  • 下载

Semantic Web Rule Language

  • 2008年05月22日 19:37
  • 179KB
  • 下载

rule engine

  • 2008年07月31日 10:22
  • 571KB
  • 下载

rule.Makefile

  • 2007年05月28日 19:59
  • 1KB
  • 下载

Layout Rule

  • 2015年12月13日 14:06
  • 891KB
  • 下载

Corticon Demo - Rule Analysis

  • 2013年07月17日 20:25
  • 1.97MB
  • 下载

对于RULE优化器的一些SQL语句的优化的方法.txt

  • 2009年08月31日 16:47
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Exception Rule
举报原因:
原因补充:

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