用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...