易截截图软件、单文件、免安装、纯绿色、仅160KB

JVM 对Java异常的处理原理

最初我们用 Java 写 JSP 的时候,几乎可以不触及异常,因为 Servlet 容器会把 API 抛出的异常包装成
ServletException 丢给容器去处理。再后来应用分层,代码中要处理的异常便多了,一般会转换成自定义的业务异常类,用
try-catch-throw
customerException-finally。再到如今各种框架日臻成熟,代码中显式的异常处理又渐渐少了些,借助于 AOP
横行,异常对业务的影响描述被移入到了配置文件中了,例如,事物处理、权限的控制等。
这颇有些像手机的发展,当通信技术不甚发达的时候,手里抓的是砖头,信号是模拟的。后来慢慢瘦身成两三根手指大小,甚至是就一支笔似的,可如今信息量大了,屏幕要大,再配上 QWERT 键盘,机身自然就肥硕了。
当然与手机的个头变迁略有不同的是,任凭你怎么对待 Java 中异常,切入 AOP 也好,在 JVM 中处理异常的内在机制始终未变。
说到 Java 异常,无外乎就是 try、catch、finally、throw、throws 这么几个关键字,这些个的用法是没必要在这里讲了。我们这里主要关键一下 catch 和 finally 是如何在编译后的 class 字节码中的。
异常的抛出与捕获,Catch 子句的表现,来看看一段 Java 代码及生成的相应字节码指令。
package
 com.unmi;   
  
import
 java.io.UnsupportedEncodingException;   
  
public
 class
 AboutCatch {   
       
    public
 static
 void
 main(String[] args){   
        try
 {   
            transfer("JVM 对 Java 异常的处理"
,"gbk"
);   
        } catch
 (Exception e) {   
            //e.printStackTrace();
  
        }   
    }   
       
    //字符集转换的方法
  
  &nb


相关文档:

java 树结构代码

 public class TreeNodes{
  IList<BranchInfo> branchs = BranchInfoManager.getAllBranchInfos();
  foreach(BranchInfo branch in branchs){
    TreeNode branchNode = new TreeNodeCreate(branch.BranchName,branch.BranchId.toString(),"","~/Images/menuclose.gif");
  ......

java中涉及构造器的相关问题

            在看到Thinking in java 第四章时初始化相关问题的时候,我们不由地把注意力移到构造器上。这里做个简单的总结,便于高手指正以及自己温故。
      首先构造器是要构造一个东西{构造对象(实例)}并对其初始化。之所以 ......

Java中new和newInstance的区别

    在Java中,使用new关键字和Class.forName("a.class.Name").newInstance都可以创建对象,它们又有什么区别呢?
    1、类的加载方式不同。
    在执行Class.forName("a.class.Name")时,JVM会在classapth中去找对应的类并加载,这时JVM会执行该类的静态代码段。在使用 ......

超轻量级JAVA开发方法(一)

      目前以Eclipse为主的重量级开发工具大行其道.虽然极为方便.但软件安装对于系统配置不高的电脑或者小项目开发非常不利.在移植过程中还有配置问题.比较麻烦.因此对于一些超小项目,使用轻量级的开发方法,显得由为必要.所谓超轻量级,就是用最简单的工具完成JAVA系统的开发.在开发当中也可以了解 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号