用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

Java异常相关的问题

2015-08-21 作者: java源代码大全举报

[java]代码库

package app.creditapp.db;
import java.io.IOException;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import app.util.exc.ExceptionHandlerImpl;
import app.util.exc.NoSuchEntityException;
 
public class PublicDAOExHandler extends ExceptionHandlerImpl {
    public PublicDAOExHandler() {
    }
    static Logger logger = Logger.getLogger(PublicDAOExHandler.class);
    public void handle(Exception e) {
        e.printStackTrace();
        logger.error("进入到handle(Exception e)异常处理中::"+e.getMessage());
        if (e instanceof SQLException) {
            logger.error("sql的错误代码为::"+((SQLException) e).getErrorCode());
             
             if (((SQLException) e).getErrorCode() == -255  ) { //数据库服务器不执行该COMMIT WORK或ROLLBACK WORK语句
                 
                 logger.error("error sqlException 原因为 :::  数据库服务器不执行该COMMIT WORK或ROLLBACK WORK语句");
                throw new NoSuchEntityException("error.COMMITandROLLBACK");
         
             else if (((SQLException) e).getErrorCode() == -220) { // 。   1
             
                 logger.error(" error sqlException 原因为 ::: 查询中没有FROM子句");
                throw new NoSuchEntityException("error.from.keyword.not.found");
         
             }else if (((SQLException) e).getErrorCode() == -235) { // 字符字段的宽度太大。 2 \u5b57\u7b26\u5b57\u6bb5\u7684\u5bbd\u5ea6\u592a\u5927
             
                 logger.error("error sqlException 原因为 ::: 字符字段的宽度太大");
                throw new NoSuchEntityException("error.char.long");
         
             }else if (((SQLException) e).getErrorCode() == -236) { //在INSERT中字段数与VALUES的数目不匹配。  2\u5728\u0049\u004e\u0053\u0045\u0052\u0054\u4e2d\u5b57\u6bb5\u6570\u4e0e\u0056\u0041\u004c\u0055\u0045\u0053\u7684\u6570\u76ee\u4e0d\u5339\u914d
             
                 logger.error("error sqlException 原因为 ::: 在INSERT中字段数与VALUES的数目不匹配");
                throw new NoSuchEntityException("error.insert.values.not.matching");
             
             }else if (((SQLException) e).getErrorCode() == -505) { //在UPDATE中的字段数与VALUES的数目不匹配。2\u5728\u0055\u0050\u0044\u0041\u0054\u0045\u4e2d\u7684\u5b57\u6bb5\u6570\u4e0e\u0056\u0041\u004c\u0055\u0045\u0053\u7684\u6570\u76ee\u4e0d\u5339\u914d
             
                 logger.error("error sqlException 原因为 ::: 在UPDATE中的字段数与VALUES的数目不匹配");
                throw new NoSuchEntityException("error.update.values.not.matching");
             
             } else if (((SQLException) e).getErrorCode() == -239) { //不能插入新行 — 在UNIQUE INDEX字段中有重复值。
             
                 logger.error("error sqlException 原因为 ::: 不能插入新行 — 在UNIQUE INDEX字段中有重复值");
                throw new NoSuchEntityException("error.dupKey");
         
             }else if (((SQLException) e).getErrorCode() == -268) { //不能插入新行 — 违反主键约束。
                     
                 logger.error("error sqlException 原因为 ::: 不能插入新行 — 违反主键约束");
                throw new NoSuchEntityException("error.dupKey");
         
             }else if (((SQLException) e).getErrorCode() == -286) { //主键字段<字段名>的缺省值是NULL。
         
                 logger.error("error sqlException 原因为 ::: 主键字段<字段名>的缺省值是NULL");
                throw new NoSuchEntityException("error.can.not.be.null");
         
             }else if (((SQLException) e).getErrorCode() == -395) { //WHERE子句包含一个外部笛卡尔乘积。\u0057\u0048\u0045\u0052\u0045\u5b50\u53e5\u5305\u542b\u4e00\u4e2a\u5916\u90e8\u7b1b\u5361\u5c14\u4e58\u79ef
         
                 logger.error("error sqlException 原因为 :::  WHERE子句包含一个外部笛卡尔乘积");
                throw new NoSuchEntityException("error.where.Cartesian");
         
             }else if (((SQLException) e).getErrorCode() == -650) { //最大的varchar大小已经被超越。\u6700\u5927\u7684\u0076\u0061\u0072\u0063\u0068\u0061\u0072\u5927\u5c0f\u5df2\u7ecf\u88ab\u8d85\u8d8a
             
                 logger.error("error sqlException 原因为 :::  最大的varchar大小已经被超越");
                throw new NoSuchEntityException("error.varchar.this.column");
         
             }else if (((SQLException) e).getErrorCode() == -836    ) { //插入语句没有values子句。
             
                 logger.error("error sqlException 原因为 :::  插入语句没有values子句");
                throw new NoSuchEntityException("error.missing.values.keyword");
             
             }else if (((SQLException) e).getErrorCode() == -839    ) { //表未被找到。
         
                 logger.error("error sqlException 原因为 :::  表未被找到");
                throw new NoSuchEntityException("error.table.or.view.does.not.exist");
         
             }else if (((SQLException) e).getErrorCode() == -206    ) { //表在数据库中未被找到。
                     
                 logger.error("error sqlException 原因为 :::  表在数据库中未被找到");
                throw new NoSuchEntityException("error.table.or.view.does.not.exist");
         
             }else if (((SQLException) e).getErrorCode() == -201    ) { //发生了一个语法错误。 \u53d1\u751f\u4e86\u4e00\u4e2a\u8bed\u6cd5\u9519\u8bef
         
                 logger.error("error sqlException 原因为 :::  发生了一个语法错误");
                throw new NoSuchEntityException("error.solecism");
         
             }else if (((SQLException) e).getErrorCode() == -202    ) { //语句中含义非法字符 如 " ' "。
         
                 logger.error("error sqlException 原因为 :::  语句中含义非法字符 如  ' ");
                throw new NoSuchEntityException("error.ffzf");
         
             }else{
             
                 logger.error("error sqlException 原因为 ::: 没有捕获的sql异常");
                throw new NoSuchEntityException("error.unexpectedSqlError");
         
             }
         
        } else if (e instanceof ArithmeticException) {//算数条件异常
         
            logger.error("error  ArithmeticException ::: 算数条件异常");
            throw new NoSuchEntityException("error.ArithmeticException");
         
        } else if (e instanceof ArrayIndexOutOfBoundsException) {//数组越界异常
         
            logger.error("error  ArrayIndexOutOfBoundsException ::: 数组越界异常");
            throw new NoSuchEntityException(
                    "error.ArrayIndexOutOfBoundsException");
         
        } else if (e instanceof ClassCastException) {//类型转换异常
         
            logger.error("error  ArrayIndexOutOfBoundsException ::: 类型转换异常");
            throw new NoSuchEntityException("error.ClassCastException");
         
        } else if (e instanceof IllegalAccessException) {//但当前正在执行的方法无法访问指定类、字段、方法或构造方法的定义时
         
            logger.error("error  IllegalAccessException ::: 但当前正在执行的方法无法访问指定类、字段、方法或构造方法的定义时异常");
            throw new NoSuchEntityException("error.IllegalAccessException");
         
        } else if (e instanceof IOException) {//I/O异常
         
            logger.error("error  IOException ::: I/O异常");
            throw new NoSuchEntityException("error.IOException");
     
        } else if (e instanceof NullPointerException) {//空指针异常
         
            logger.error("error  NullPointerException ::: 空指针异常");
            throw new NoSuchEntityException("error.NullPointerException");
         
        } else if (e instanceof RuntimeException) { //运行中的其他异常
         
            logger.error("error  RuntimeException ::: 运行中的其他异常");
            throw new NoSuchEntityException(e.getMessage());
     
        }else if (e instanceof RuntimeException) { //运行中的其他异常
         
            logger.error("error  UnknownHostException ::: 运行中的其他异常");
            throw new NoSuchEntityException("error.host");
           
         else if ("appno".equals(e.getMessage())) { //运行中的其他异常
                 
                logger.error("error  error.repeat.apply ::: 该笔申请在合同中已经存在");
                throw new NoSuchEntityException("error.repeat.apply");
               
           } else {//未知错误请与管理员联系
             
            logger.error("error   unexpected ::: 未知错误请与管理员联系");
            throw new NoSuchEntityException("error.unexpected");
         
        }
    }
}//源代码片段来自云代码http://yuncode.net
            


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...