点唱机的音质画哪款手机音质效果最好和KTV里的有区别吗

Unreachable catch block for SQLException问题 - ITeye问答
public static void saveRank(Rank r) {
Connection conn =
ResultSet rs =
conn = DB.getConn();
DB.executeUpdate(conn, "DELETE * FROM rank");
for (int i = 0; i & r.size(); i++) {
String sql = "INSERT INTO rank VALUES('" + r.get(i).getName()
+ "',character='" + r.get(i).getCharacter()
+ "',score='" + r.get(i).getScore() + "',level='"
+ r.get(i).getLevel() + "')";
int update = DB.executeUpdate(conn, sql);
if (update == 0) {
System.out.println("Update Succeeded");
System.out.println("Update Unsucceeded");
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
DB.close(conn);
DB.close(rs);
}catch(SQLException ex){
这行在eclipse中提示错误:Unreachable catch block for SQLException. This exception is never thrown from the try statement body
对于错误的原因很不解,为什么这里不可能抛出异常呢?望指教
应该是在DB的执行方法中已经处理了SQLException,没有抛出。
已解决问题
未解决问题6234人阅读
在客户端查询数据的时候,有时候会出现明明有数据,但是还是显示查不到数据,再点击查询或多查几次又能查出来,很是郁闷,查看服务器日志,发现了如下错误:
08:49:31,604 ERROR [STDERR] java.sql.SQLException: ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package body "ISGIS.GIS_DIST_STAT" has been invalidated
ORA-04065: not executed, altered or dropped package body "ISGIS.GIS_DIST_STAT"
ORA-06508: PL/SQL: could not find program unit being called: "ISGIS.GIS_DIST_STAT"
ORA-06512: at "ISGIS.VEHICLE_TEST_PROCCCCC", line 100
ORA-06512: at line 1
错误的信息是说ISGIS.GIS_DIST_STAT这个包的状态是无效的,也就是说,DBServer重新编译了这个包,导致出现此异常,如果在这个时候再查询一次就不会报这个错,原因是当包编译的时候会将包的状态缓存起来,当你重新编译的时候,之前缓存的包的状态变成了OLD,新编译的变成了NEW,当程序来请求这个包的时候,加载的是OLD,而这个OLD已经被标示成无效的了,所以报错,当你再一次查询的时候,程序已经知道这个包是无效的,所以重新加载NEW,就不会再报错,解决的方法大致有三个:
1。将所用到的包设置成无状态的包,也就是说,不能在包里面设置全局变量,这样,即使重新编译了包,也不会出现以上错误,这需要在程序设计时就必须考虑到,但是很遗憾,我目前的程序在设计的时候没有考虑这一点,包的规模比较大,全局变量到处都是!
2。将包中的全局变量拿出来放到一个新的包里,当前包不设置全局变量,当前包需要全局变量的时候到新包里去取,这样,只要不重新编译全局变量所在的包,就不会出现异常。我觉得这个方法比较好,因为要做到包里面没有全局变量,不是要做很多重复的工作吗?但是目前我这个程序中的全局变量到处都是,改起来太麻烦了,看来还是要在程序设计的时候考虑全面一点!
3。如果你的项目中用到了Spring框架,那你一定会知道Spring的环绕通知,所谓环绕通知,就是在方法执行前和执行后都会调用这个通知,在这个通知里,你可以改变传入方法的参数,也可以修改方法的返回值,当然还有前置通知和后置通知,不懂的朋友自己去查资料吧,我的打算是给需要调用包的方法都加上环绕通知,然后在方法执行完判断是否出现了4068异常,如果出现了此异常,就再去执行一次,这样就不会出现查不到数据的情况了,而且源代码不需要改动,只要加配置文件和一个类就Ok,如果没有用到spring那就自己想办法吧,可以在执行的时候判断是否出现4068异常,然后再重新查询,反正思路大致就是这样,网上还有一种做法,我觉得也还不错,就是将callableStatement,PreparedStatement,Statement这些类中的执行数据库操作的方法重写,然后判断有没有出现4068异常,如果出现,再执行一次,这要求你在有可能出现4068异常的地方执行数据库操作都使用自己重写过的类,如果项目庞大并且已经成型,你会晕的,如果在项目搭建的时候就考虑到4068异常,这也未尝不是一个好方法。
综上所述,个人觉得如果对数据库更改方便的话,尽量使用第2种方法,如果数据库不能随便让你动,而且程序已经成型,不能去大范围改动源代码,那就使用Spring的环绕通知来做这个事情比较划算!
嘿嘿,看来以后项目搭建的时候,如果数据库用到包的话,那就要考虑考虑4068异常咯,因为等成型了再来改就比较麻烦了!我也是一菜鸟,希望高手看到不对的地方指正一下,谢谢!
java判断数据库4086异常的代码:
public static boolean returnExecutionRequired(SQLException e){
boolean returnValue="72000".equals(e.getSQLState()) && e.getErrorCode()==4068;
return returnV
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:62628次
排名:千里之外
原创:25篇
(1)(1)(2)(1)(1)(1)(1)(1)(5)(3)(1)(3)(6)当前位置:
&&>&&&&>&&&&>&&正文
程序基础C编程中的错误解析
11:27:08&&&&
评论(0)&&&&
阅读(1118)
&  Ambiguous operators need parentheses
&&& 不明确的运算需要用括号括起
&&& Ambiguous symbol 'xxx'
&&& 不明确的符号
&&& Argument list syntax error
&&& 参数表语法错误
&&& Array bounds missing
&&& 丢失数组界限符
&&& Array size toolarge
&&& 数组尺寸太大
&&& Bad character in paramenters
&&& 参数中有不适当的字符
&&& Bad file name format in include directive
&&& 包含命令中文件名格式不正确
&&& Bad ifdef directive synatax
&&& 编译预处理ifdef有语法错
&&& Bad undef directive syntax
&&& 编译预处理undef有语法错
&&& Bit field too large
&&& 位字段太长
&&& Call of non-function
&&& 调用未定义的函数
&&& Call to function with no prototype
&&& 调用函数时没有函数的说明
&&& Cannot modify a const object
&&& 不允许修改常量对象
&&& Case outside of switch
&&& 漏掉了case 语句
&&& Case syntax error
&&& Case 语法错误
&&& Code has no effect
&&& 代码不可述不可能执行到
&&& Compound statement missing{
&&& 分程序漏掉"{"
&&& Conflicting type modifiers
&&& 不明确的类型说明符
&&& Constant eXPression required
&&& 要求常量表达式
&&& Constant out of range in comparison
&&& 在比较中常量超出范围
&&& Conversion may lose significant digits
&&& 转换时会丢失意义的数字
&&& Conversion of near pointer not allowed
&&& 不允许转换近指针
&&& Could not find file 'xxx'
&&& 找不到XXX文件
&&& 说明缺少";"
&&& Declaration syntax error
&&& 说明中出现语法错误
&&& Default outside of switch
&&& Default 出现在switch语句之外
&&& Define directive needs an identifier
定义编译预处理需要标识符
&&& Division by zero
&&& 用零作除数
&&& Do statement must have while
&&& Do-while语句中缺少while部分
&&& Enum syntax error
&&& 枚举类型语法错误
&&& Enumeration constant syntax error
&&& 枚举常数语法错误
&&& Error directive :xxx
&&& 错误的编译预处理命令
&&& Error writing output file
&&& 写输出文件错误
&&& Expression syntax error
&&& 表达式语法错误
&&& Extra parameter in call
&&& 调用时出现多余错误
&&& File name too long
&&& 文件名太长
&&& Function call missing )
&&& 函数调用缺少右括号
&&& FUCtion definition out of place
&&& 函数定义位置错误
&&& Fuction should return a value
&&& 函数必需返回一个值
&&& Goto statement missing label
&&& Goto语句没有标号
&&& Hexadecimal or octal constant too large
&&& 16进制或8进制常数太大
&&& Illegal character 'x'
&&& 非法字符x
&&& Illegal initialization
&&& 非法的初始化
&&& Illegal octal digit
&&& 非法的8进制数字
&&& Illegal pointer suBTraction
&&& 非法的指针相减
&&& Illegal structure operation
&&& 非法的结构体操作
&&& Illegal use of floating point
&&& 非法的浮点运算
&&& Illegal use of pointer
&&& 指针使用非法
&&& Improper use of a typedefsymbol
&&& 类型定义符号使用不恰当
&&& In-line assembly not allowed
&&& 不允许使用行间汇编
&&& Incompatible storage class
&&& 类别不相容
&&& Incompatible type conversion
&&& 不相容的类型转换
&&& Incorrect number format
&&& 错误的数据格式
&&& Incorrect use of default
&&& Default使用不当&Invalid indirection
&&& 无效的间接运算
&&& Invalid pointer addition
&&& 指针相加无效
&&& Irreducible expression tree
&&& 无法执行的表达式运算
&&& Lvalue required
&&& 需要逻辑值0或非0值
&&& Macro argument syntax error
&&& 宏参数语法错误
&&& Macro expansion too long
&&& 宏的扩展以后太长
&&& Mismatched number of parameters in definition
&&& 定义中参数个数不匹配
&&& Misplaced break
&&& 此处不应出现break语句
&&& Misplaced continue
&&& 此处不应出现continue语句
&&& Misplaced decimal point
&&& 此处不应出现小数点
&&& Misplaced elif directive
&&& 不应编译预处理elif
&&& Misplaced else
&&& 此处不应出现else
&&& Misplaced else directive
&&& 此处不应出现编译预处理else
&&& Misplaced endif directive
&&& 此处不应出现编译预处理endif
&&& Must be addressable
&&& 必须是可以编址的
&&& Must take address of memory location
&&& 必须定位的地址
&&& No declaration for function 'xxx'
&&& 没有函数xxx的说明
&&& No stack
&&& 缺少堆栈
&&& No type information
&&& 没有类型信息
&&& Non-portable pointer assignment
&&& 不可移动的指针(地址常数)赋值
&&& Non-portable pointer comparison
&&& 不可移动的指针(地址常数)比较
&&& Non-portable pointer conversion
&&& 不可移动的指针(地址常数)转换
&&& Not a valid expression format type
&&& 不合法的表达式格式
&&& Not an allowed type
&&& 不允许使用的类型
&&& Numeric constant too large
&&& 数值常太大
&&& Out of memory
&&& 内存不够用
&&& Parameter 'xxx' is never used
&&& 能数xxx没有用到
&&& Pointer required on left side of -&
&&& 符号-&的左边必须是指针
&&& Possible use of 'xxx' before definition
&&& 在定义之前就使用了xxx(警告)
&&& Possibly incorrect assignment&赋值可能不正确
&&& Redeclaration of 'xxx'
&&& 重复定义了xxx
&&& Redefinition of 'xxx' is not identical
&&& xxx的两次定义不一致
&&& Register allocation failure
&&& 寄存器定址失败
&&& Repeat count needs an lvalue
&&& 重复计数需要逻辑值
&&& Size of structure or array not known
&&& 结构体或数给大小不确定
&&& 语句后缺少";"
&&& Structure or union syntax error
&&& 结构体或联合体语法错误
&&& Structure size too large
&&& 结构体尺寸太大
&&& Sub scripting missing ]
&&& 下标缺少右方括号
&&& Superfluous & with function or array
&&& 函数或数组中有多余的"&"
&&& Suspicious pointer conversion
&&& 可疑的指针转换
&&& Symbol limit exceeded
&&& 符号超限
&&& Too few parameters in call
&&& 函数调用时的实参少于函数的参数不
&&& Too many default cases
&&& Default太多(switch语句中一个)
&&& Too many error or warning messages
&&& 错误或警告信息太多
&&& Too many type in declaration
&&& 说明中类型太多
&&& Too much auto memory in function
&&& 函数用到的局部存储太多
&&& Too much global data defined in file
&&& 文件中全局数据太多
&&& Two consecutive dots
&&& 两个连续的句点
&&& Type mismatch in parameter xxx
&&& 参数xxx类型不匹配
&&& Type mismatch in redeclaration of 'xxx'
&&& xxx重定义的类型不匹配
&&& Unable to create output file 'xxx'
&&& 无法建立输出文件xxx
&&& Unable to open include file 'xxx'
&&& 无法打开被包含的文件xxx
&&& Unable to open input file 'xxx'
&&& 无法打开输入文件xxx
&&& Undefined label 'xxx'
&&& 没有定义的标号xxx
&&& Undefined structure 'xxx'
&&& 没有定义的结构xxx
&&& Undefined symbol 'xxx'
&&& 没有定义的符号xxx
&&& Unexpected end of file in comment started on line xxx
&&& 从xxx行开始的注解尚未结束文件不能结束& Unexpected end of file in conditional started on line xxx
&&& 从xxx 开始的条件语句尚未结束文件不能结束
&&& Unknown assemble instruction
&&& 未知的汇编结构
&&& Unknown option
&&& 未知的操作
&&& Unknown preprocessor directive: 'xxx'
&&& 不认识的预处理命令xxx
&&& Unreachable code
&&& 无路可达的代码
&&& Unterminated string or character constant
&&& 字符串缺少引号
&&& User break
&&& 用户强行中断了程序
&&& Void functions may not return a value
&&& Void类型的函数不应有返回值
&&& Wrong number of arguments
&&& 调用函数的参数数目错
&&& 'xxx' not an argument
&&& xxx不是参数
&&& 'xxx' not part of structure
&&& xxx不是结构体的一部分
&&& xxx statement missing (
&&& xxx语句缺少左括号
&&& xxx statement missing )
&&& xxx语句缺少右括号
&&& xxx缺少分号
&&& xxx' declared but never used
&&& 说明了xxx但没有使用
&&& xxx' is assigned a value which is never used
&&& 给xxx赋了值但未用过
&&& Zero length structure
&&& 结构体的长度为零
程序开发基础相关文章

我要回帖

更多关于 dnf画质提升没效果 的文章

 

随机推荐