很不错的JAVA异常总结,异常不是想象的那么简单
来源:互联网 发布:proteus单片机教程 编辑:程序博客网 时间:2024/05/29 09:25
项目中的异常处理 零 (实在写的太好了,导致我非法转载!!!)
为什么要在J2EE项目中谈异常处理呢?可能许多java初学者都想说:“异常处理不就是try….catch…finally吗?这谁都会啊!”。笔者在初学java时也是这样认为的。如何在一个多层的j2ee项目中定义相应的异常类?在项目中的每一层如何进行异常处理?异常何时被抛出?异常何时被记录?异常该怎么记录?何时需要把checked Exception转化成unchecked Exception ,何时需要把unChecked Exception转化成checked Exception?异常是否应该呈现到前端页面?如何设计一个异常框架?本文将就这些问题进行探讨。1. JAVA异常处理在面向过程式的编程语言中,我们可以通过返回值来确定方法是否正常执行。比如在一个c语言编写的程序中,如果方法正确的执行则返回1.错误则返回0。在vb或delphi开发的应用程序中,出现错误时,我们就弹出一个消息框给用户。通过方法的返回值我们并不能获得错误的详细信息。可能因为方法由不同的程序员编写,当同一类错误在不同的方法出现时,返回的结果和错误信息并不一致。所以java语言采取了一个统一的异常处理机制。什么是异常?运行时发生的可被捕获和处理的错误。在java语言中,Exception是所有异常的父类。任何异常都扩展于Exception类。Exception就相当于一个错误类型。如果要定义一个新的错误类型就扩展一个新的Exception子类。采用异常的好处还在于可以精确的定位到导致程序出错的源代码位置,并获得详细的错误信息。Java异常处理通过五个关键字来实现,try,catch,throw ,throws, finally。具体的异常处理结构由try….catch….finally块来实现。try块存放可能出现异常的java语句,catch用来捕获发生的异常,并对异常进行处理。Finally块用来清除程序中未释放的资源。不管理try块的代码如何返回,finally块都总是被执行。一个典型的异常处理代码java 代码
- public String getPassword(String userId)throws DataAccessException{
- String sql = “select password from userinfo where userid=’”+userId +”’”;
- String password = null;
- Connection con = null;
- Statement s = null;
- ResultSet rs = null;
- try{
- con = getConnection();//获得数据连接
- s = con.createStatement();
- rs = s.executeQuery(sql);
- while(rs.next()){
- password = rs.getString(1);
- }
- rs.close();
- s.close();
- }
- Catch(SqlException ex){
- throw new DataAccessException(ex);
- }
- finally{
- try{
- if(con != null){
- con.close();
- }
- }
- Catch(SQLException sqlEx){
- throw new DataAccessException(“关闭连接失败!”,sqlEx);
- }
- }
- return password;
- }
- public String getPassword(String userId){
- try{
- ……
- Statement s = con.createStatement();
- ……
- Catch(SQLException sqlEx){
- ……
- }
- ……
- }
- public String getPassword(String userId)throws SQLException{
- Statement s = con.createStatement();
- }
- String str = “123”;
- int value = Integer.parseInt(str);
- public static int parseInt(String s) throws NumberFormatException
- try{
- ……
- Statement s = con.createStatement();
- ……
- Catch(SQLException sqlEx){
- sqlEx.PrintStackTrace();
- }
- 或者
- try{
- ……
- Statement s = con.createStatement();
- ……
- Catch(SQLException sqlEx){
- //什么也不干
- }
- public void methodA()throws ExceptionA{
- …..
- throw new ExceptionA();
- }
- public void methodB()throws ExceptionB{
- try{
- methodA();
- ……
- }catch(ExceptionA ex){
- throw new ExceptionB(ex);
- }
- }
- Public void methodC()throws ExceptinC{
- try{
- methodB();
- …
- }
- catch(ExceptionB ex){
- throw new ExceptionC(ex);
- }
- }
0 0
- 很不错的JAVA异常总结,异常不是想象的那么简单
- 软件工程不是想象中那么简单
- 软件工程不是想象中那么简单
- java异常的总结
- Java的异常总结
- java异常的总结
- Java的异常总结
- 矩阵的平移(translate)没有想象的那么简单
- java简单异常的处理
- uva10012 不是那么简单的,有陷阱!
- Swap in JAVA, 不是想象中的简单
- Swap in JAVA, 不是想象中的简单
- Swap in JAVA, 不是想象中的简单
- Swap in JAVA, 不是想象中的简单
- Java常见的异常总结
- java 异常处理的总结
- Java常见的异常总结
- Java常见异常的总结
- vi简介
- iOS开发之微信聊天工具栏的封装
- nginx-rrd监控nginx 使用说明
- UDP知识详解
- 多线程同步互斥
- 很不错的JAVA异常总结,异常不是想象的那么简单
- 【内核研究】Binder客户端设计
- 打开多个unity项目
- u盘误删除恢复,迅龙数据恢复
- vi进入与离开
- 黑马程序员_java的异常机制
- Linux特殊权限分析(第二版)
- 评分卡模型剖析之一(woe、IV、ROC、信息熵)
- HTML基本标记