编码规范考试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码规范考试相关的知识,希望对你有一定的参考价值。
java 编码规范试题
一.判断题(共 20 题 ,每题 1 分) 判断题(
1.( )equals 操作时常量放在 equals 操作符的左边和右边都可以。 false 2.( )函数的逻辑层次不能超过 4 层。 false 3. ( )对于 switch 语句下的 case 语句,必须在每个 case 分支结束前加上 break 语句。 tru
e 4. ( )修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用 的注释不要删除。 false 5. ( )方法内的单行注释使用 //。 true
6. ( )类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大 写、其余字母使用小写的大小写混合法。 true 7. ( )方法名使用类意义完整的英文描述:第一个单词的字母使用大写、剩余 单词首字母小写其余字母小写的大小写混合法。 false 8. ( )属性名使用意义完整的英文描述,第一个单词的字母使用小写,剩余单 词首字母小写其余字母大写的大小写混合法。属性名不能与方法名相同。false 9. ()常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使 用 static final 修饰。 true 10. ( )准确地确定成员函数的存取控制符号:只是该类内部调用的函数使用 private 属性,继承类可以使用的使用 protected 属性,同包类可以调用的使用默 认属性(不加属性控制符号),对外公开的函数使用 public 属性。true 11. ( ) 系统非正常运行产生的异常捕获后,如果不对该异常进行处理,则应该 记录日志。 true 12. ( ) 记录异常不要保存 exception. tostring (), 而要记录 exception. getmessage (),一般可通过日志工具记录完整的异常堆栈信息。 false 13. ( ) interface 中定义的常量不要写 public、static、final 的修饰词,方法不 要写 public 修饰词。 true
14.( ) 对 debug,info 级别日志输出前不需要对当前的调试等级先进行判断。 false 15. ( ) java 1.4 中大量字符串的“相加”操作应该使用 stringbuffer。java 5.0 以上版本大量字符串“相加等于”操作如果不涉及线程安全应该使用 stringbuilder,如果有线程安全的要求应该使用 stringbuffer。 true 16. ( )涉及物理状态或者含有物理意义的常量,提倡直接使用数字,因为这些 是众所知之的,没有必要再进行常量的定义。 false 17. ( )数据库操作、io 操作等需要使用结束 close()的对象必须在 try -catch-finally 的 catch 中 close()。 false 18.( ) 数据库操作、io 操作等需要使用结束 close()的对象必须在 try -catch-finally 的 finally 中 close()。 true 19.( 20.( true ) 数组声明的时候使用 int index[],而不要使用 int[] index。false ) 所有的数据类必须重载 tostring() 方法,返回该类有意义的内容。
答案: 答案: 1、(×) 、(× 6、(√) 、(√ 11、(√ 11、(√) 、( 16.( 16.(×) 2、(×) 、(× 7、(×) 、(× 12.( 12.(×) 17.( 17.(×) 3、(√) 、(√ 8、(×) 、(× 13.( 13.(√) 18.( 18.(√) 4、(×) 、(× 9、(√) 、(√ 14.( 14.(×) 19.( 19.(×) 5、(√) 、(√ 10、(√ 10、(√) 、( 15.( 15.(√) 20.( 20.(√)
二.单选题(共 50 题 ,每题 1 分) 单选题(
1. 关于程序块的缩进,描述正确的是 b b. 缩进的空格数为 4 个 a. 缩进的空格数为 2 个 c. 缩进的空格数为 8 个 d. 缩进的空格数为一个 tab 占位符 2.关于代码的缩进,描述正确的是 c a. for (...) { ... // program code } b. if (...) { ... // program code } c. void example_fun( void ) { ... // program code
} d. if(...){ return ... } else{ return ... } 3. 较长的语句、表达式或参数要分成多行书写,描述错误的是 d b. 长表达式要在低优先级操作符处划分新行 a. 每行步超过 80 个字符 c. 划分出的新行要进行适当的缩进 d. 操作符放在上一行之尾 4. 以下选项中,符合编码规范的是 a a. if (filename != null && new file(logpath + filename).length() < logconfig.getfilesize()) { ... // program code } b. if (filename != null && new file(logpath + filename).length() < logconfig.getfilesize()) { ... // program code } c. if (filename != null && new file(logpath + filename).length() < logconfig.getfilesize()) { ... // program code } d. if (filename != null && new file(logpath + filename).length() < logconfig.getfilesize()) { ... // program code } 5. 以下选项中,符合编码规范的是 d a. if(writetofile) writefilethread.interrupt(); b. if(writetofile) writefilethread.interrupt(); c. if(writetofile){ writefilethread.interrupt(); } d. if(writetofile) { writefilethread.interrupt(); } 6. 以下选项中,不符合编码规范的是 c
if (a >= b && c > d) b. p.id = pid; flag = !isempty; ++; int a, b, c; 以下选项中,符合编码规范的是 b if (current_time >= max_time_value) = b + c; *= 2; = b ^ 2; if (current_time >= max_time_value) a = b + c; a *= 2; a = b ^ 2; c. if (current_time >= max_time_value) { a = b + c; } a *= 2; a = b ^ 2; d. if (current_time >= max_time_value) a = b + c; a *= 2; a = b ^ 2; 8. 关于代码中的注释,描述正确的是 c a. 源程序有效注释量必须在 10%以上 b. 源程序有效注释量必须在 20%以上 c. 源程序有效注释量必须在 30%以上 d. 源程序有效注释量必须在 40%以上 9. 对于注释规范,描述正确的是 a a. 避免在注释中使用缩写,特别是不常用缩写。 b. 在注释量较多时,为了避免注释量太多,建议多使用一些缩写,以使得注释 简洁些,避免冗长 c. 对于注释中的缩写,建议不需要解释,因为这些缩写的含义,都应该知道 d. 对于注释中的缩写,为了避免理解错误,建议都需要进行说明 10. 对于注释的描述正确的是 c a. 注释的内容要相对清楚、明了,含义相对准确,减少注释二义性。 b. 对于错误的注释,需要根据项目时间,进行适当的修改和调整 c. 错误的注释不但无益反而有害,必须删除 d 对于修改代码后不再有用的注释,为了保证修改记录可见,避免可能出现的问 题,不能删除。 11. 对于注释的描述正确的是 a a. 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致 性。 b. 可以在代码写完后集中增加注释,这样的注释能够从整体把握,减少修改代 码就必须修改注释而产生的工作量
a. c. i d. 7. a. a a a b.
c. 对于修改代码后不再有用的注释,为了保证修改记录可见,避免可能出现的 问题,不能删除。 d. 对于修改后的代码与注释不一致的情况,需要尽量减少,当时间紧张时以代 码为主,注释为辅 12. 对于注释的描述正确的是 d a. 对于变量的定义,一般情况下不需要注释 b. 条件分之因为比较简 单,一般不需要注释 c. 循环分之可以根据实际情况,可以增加注释,也可以不加,根据注释量确定 d. 对变量的定义,条件分之,循环分之必须编写注释 13. 关于 switch 语句的使用,描述正确的是 a a. 对于 switch 语句下的 case 语句,如果因为特殊情况需要处理完一个 case 后进入下一个 case 处理,必须在该 case 语句处理完、下一个 case 语句前加上 明确的注释。 b. 对于 switch 语句下的 case 语句,如果因为特殊情况需要处理完一个 case 后进入下一个 case 处理,必须在该 case 语句之前就加上明确的注释。 c. 对于 switch 语句下的 case 语句,如果因为特殊情况需要处理完一个 case 后进入下一个 case 处理,如果很简单,可以不加注释 d. 尽量避免使用 switch 语句,建议使用嵌套的 if 语句代替 switch 14. 下列选项中,描述正确的是 b a.//注释 code one program code one //注释 code two program code two b. //注释 code one program code one
//注释 code two program code two c. program code one //注释 code one program code two //注释 code two d. program code one //注释 code one program code two //注释 code two 15. 下列选项中,描述正确的是 d a. 注释的原则是满足对注释量的要求。注释多了没有问题,但是一定不能少。 b. 在注释量达不到要求时,可以增加一些意义相对不大的注释。 c. 对于注释,可以存在二义性,但是越少越好。 d. 注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太 多也不能太少,注释语言必须准确、易懂、简洁。
16. 关于包的注释,描述不正确的是 d a. 包的注释写入一个名为 package.html 的 html 格式的说明文件放入当前路 径。 b. 简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。 c. 在详细描述中应该说明这个包的作用以及在整个项目中的位置。 d. 包的注释中需要简述本包的作用就可以了,其他的信息根据需要进行补充。 17. 关于文件的注释,描述不正确的是 c a. 文件注释写入文件头部,包名之前的位置。 b. 文件注释包括版权说明、描述信息、生成日期、修改历史。 c. 文件注释中的文件名必须。 d. 每次修改后在文件头部写明修改信息。 18. 关于类和接口的注释,描述不正确的是 d a. 该注释放在 package 关键字之后,class 或者 interface 关键字之前。 b. 类的注释主要是一句话功能简述、功能详细描述。 c. 可根据需要列出:版本号、生成日期、作者、内容、功能、与其它类的关系 等。 如果一个类存在 bug,请如实说明这些 bug。 d. 每次修改后,不需要增加作者和更新版本号和日期。 19. 下列选项中,描述不正确的是 d a. 类属性和公有方法的注释写在类属性、公有和保护方法上面。 b. 成员变量的注释包括成员变量的意义、目的、功能,可能被用到的地方。 c. 公有方法的注释列出方法的一句话功能简述、功能详细描述、输入参数、输 出参数、返回值、违例等。 d. 对于私有方法,因为只有本类适用,因此不需要增加注释。 20. 下列选项中,描述不正确的是 c a. 对于方法内部用 throw 语句抛出的异常,必须在方法的注释中标明。 b. 对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。 c. 对于所调用的其他方法所抛出的异常,必须将所有的异常在注释中说明。 d. 对于非 runtimeexception,即 throws 子句声明会抛出的异常,必须在方法 的注释中标明。 21. 关于包的命名,不正确的是 c a. 包名采用域后缀倒置的加上自定义的包名,采用小写字母。 b. 在部门内部应该规划好包名的范围,防止产生冲突。 c. 为了避免限制研发人员的创造性,不需要对包名进行规划,有研发人员自己 确定即可。 d. 部门内部产品使用部门的名称加上模块名称。产品线的产品使用产品的名称 加上模块的名称。 22. 关于命名,描述不正确的是 d a. 类名和接口使用类意义完整的英文描述。 b. 类名和接口的命名采用每个英文单词的首字母使用大写、其余字母使用小写 的大小写混合法。 c. 方法名使用方法意义完整的英文描述 d. 方法名采用第一个单词的字母使用大写、剩余单词首字母大写其余字母小写 的大小写混合法。 23. 下列选项中,描述不正确的是 b
a. 方法中,存取属性的方法采用 setter 和 getter 方法. b. 方法中,存取属性的方法可以不采用 setter 和 getter 方法,只需要通过注 释进行说明。 c. 方法名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首 字母大写其余字母小写的大小写混合法。 d. 动作方法采用动词和动宾结构。 24. 下列选项中,描述不正确的是 d a. 属性名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首 字母大写其余字母小写的大小写混合法。 b. 常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰。 c. 属性名不能与方法名相同。 d. 属性名可以与方法名相同。 25. 下列选项中,描述不正确的是 c b. 属性名不能和局部变量相同。 a. 属性名可以和公有方法参数相同。 c. 属性名可以和局部变量相同。 d. 引用非静态成员变量时使用 this 引用,引用静态成员变量时使用类名引用。 26. 下列选项中,关于编码规范的描述正确的是 b a. 大致确定方法功能,近似地实现方法设计。 b. 一个函数仅完成一件功能,即使简单功能也应该编写方法实现。 c. 仅用一两行就可完成的功能去编方法没有必要。 d. 对于简单的功能,可以在一个方法中实现多个功能。 27. 关于接口方法参数的合法性检查,描述不正确的是 d a. 应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口 方法本身负责, b. 参数的合法性检查缺省是由方法调用者负责。 c. 调用者和被调用者均对参数进行合法性检查。 d. 调用者和被调用者均不对参数进行合法性检查。 28. 关于类的设计,描述不正确的是 c a. 明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组相 近的功能。 b. 划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的单一 性。 c. 数据类可以包含数据处理的逻辑。 d. 通信类不能包含显示处理的逻辑。 29. 下列选项中,描述不正确的是 b a. 所有的数据类必须重载 tostring() 方法。 b. 对于比较简单的数据类,不需要重载 tostring()方法。 c. 父类如果实现了比较合理的 tostring() ,子类可以继承不必再重写。 d. 数据类的 tostring()方法返回该类有意义的内容。 30. 下列选项中,关于异常的处理,描述不正确的是 d a. 数据库操作、io 操作等需要使用结束 close()的对象必须在 try -catch-finally 的 finally 中 close()。 b. 异常捕获后,如果不对该异常进行处理,则应该纪录日志或者 ex.printstacktrace() 。
c. 若有特殊原因不对该异常进行处理,必须用注释加以说明。 d. 自己抛出的异常不要填写详细的描述信息。 31. 下列选项中,描述不正确的是 a a. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构 来确定,其中异常和错误码可以混合使用。 b. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构 来确定,并且异常和错误码不应该混合使用,推荐使用异常。 c. 一个系统或者模块应该统一规划异常类型和返回码的含义。 d. 不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效 率比条件分支低,而且异常的跳转流程难以预测。 32. 下列选项中,描述不正确的是 c a. 避免使用不易理解的数字,用有意义的标识来替代。 b. 涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义 的静态变量来代替。 c. 对于一些数字可以直接适用,不需要用有意义的标识来替代。 d. 数组声明的时候使用 int[] index ,而不要使用 int index[] 。 33. 下述各项中,符合编码规范的描述的项是 d a. 即使是不易理解的数字,只要开发人员已经达成了一致意见,也可以在代码 中直接使用。 b. 涉及物理状态或者含有物理意义的常量,因为是众所周知的,因此可以直接 使用数字,没有必要再用有意义的静态变量来代替。 c. 对于数字的表示,只要开发人员达成一致,就没有必要强制要求。 d. 避免使用不易理解的数字,用有意义的标识来替代。 34. java 源文件中,关于包和 import 的描述不正确的是 b a. 某些情况下,java 源文件可以不包含包语句。 b. java 源文件中,第一个非注释行必须是包语句. c. 某些情况下,java 源文件中可以不包含引入语句。 d. java 源文件中,通常第一个非注释行是包语句。在它之后可以跟引入语句. 35. 关于变量的初始化,描述正确的是 d a. 对于变量的初始化,在编码过程中可以不强制要求,只要不产生空指针即可。 b. 对于特定类型的变量,如 string,int,不需要进行初始化。 c. 变量应该在使用时再初始化。 d. 尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依 赖于某些先前发生的计算。 36. 关于方法命名,下面那句话是正确的 c a. 除了构建器外,定义和类名相同的方法名会产生编译错误。 b. 如果没有定义构建器,那么可以定义和类名相同的方法名。 c. 定义和类名相同的方法名不会产生错误,只是有时候容易混淆。 d. 定义和类名相同的方法名不会有任何问题。 37. 下列选项中,对命名规范描述正确的是 a a. 类、接口名的单词首字母应该大写 b. 包名单词的首字母应该大写。 c. 方法名的单词首字母应该大写。 d. 变量名的单词首字母应该大写。 38. 当一个表达式长度超出一行内时,下面那一个不是进行换行的规则 c b. 在一个操作符前面断开。 a. 在一个逗号后面断开。
c. 选择较低级别(lower-level)的断开,而非较高级别(higher-level)的断开。 d. 新的一行应该与上一行同一级别表达式的开头处对齐 39. 下列各项中不符合编码规范的是 a b. argv++;argc--; a. argv++; argc--; c. argv++;--argc; d. argv++;--argc; 40. 调试代码,增加打印信息,应该使用 d a. system.out。 b. system.err。 c. 包含统一开关的测试类进行统一打印 d. 其他都不是。 41. 下述各项中,关于变量的声明错误的是 c a. 推荐一行一个声明,因为这样以利于写注释。亦即, int level; // indentation level int size; // size of table b. 不要将不同类型变量的声明放在同一行,例如: int foo, fooarray[]; //wrong! c. 如果需要声明的变量较少,提倡将这些变量放在同一行。如 int leve, int size; d. 变量声明语句中,在类型和标识符之间放了一个空格,另一种被允许的替代 方式是使用制表符: int level; // indentation level int size; // size of table object currententry; // currently selected table entry 42. 下述各项中,符合编码规范的是 a a. for (...) { ... // program code } b. for (...) { ... // program code } c. for (...) { ... // program code } d. for (...) { ... // program code } 43. 下述各项中,不符合编码规范的是 c a. 在 switch 中每个 case 语句都应该包含 break 或者 return 。 b. 不要使用空的 for 、if 、while 语句。 c. 静态属性的初始化不需要显式初始化。
d. 在运算中不要减小数据的精度。 44. 下述选项中,关于异常的描述错误的是 c a. 数据库操作、io 操作等需要使用结束 close()的对象必须在 try -catch-finally 的 finally 中 close()。 b. 异常捕获后,如果不对该异常进行处理,则应该纪录日志或者 ex.printstacktrace() 。 c. 异常捕获后,如果不对该异常进行处理,直接忽略即可。 d. 自己抛出的异常必须要填写详细的描述信息。 45. 关于方法的设计,描述正确的是 d a. 明确方法功能,精确地实现方法设计。 b. 一个方法仅完成一件功能,即使简单功能也应该编写方法实现。 c. 仅用一两行就可完成的功能去编方法好象没有必要,但用方法可使功能明确 化,增加程序可读性,亦可方便维护、测试。 d. 明确方法功能,近似地实现方法设计。 46. 关于类的设计,描述错误的是 d a. 应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口 方法本身负责。 b. 明确类的功能,精确(而不是近似)地实现类的设计。 c. 所有的数据类必须重载 tostring() 方法,返回该类有意义的内容。 d. 一个类可以包含很多功能,而不仅仅是一组相近的功能。 47. 下述个项中,符合编码规范的是 a a. if(log.getlevel() < logconfig.getrecordlevel()) { return; } logwriter writer; int index; bif(log.getlevel() < logconfig.getrecordlevel()) { return; }
logwriter writer;
int index; c. if(log.getlevel() < logconfig.getrecordlevel()) { return; } logwriter writer; int index; d. if(log.getlevel() < logconfig.getrecordlevel())
{ return; } logwriter writer; int index; 48. 下述个项中,符合编码规范的是 d a. if(writetofile) writefilethread.interrupt(); b. if(writetofile){ writefilethread.interrupt();} c. if(writetofile){ writefilethread.interrupt(); } d. if(writetofile) { writefilethread.interrupt(); } 49. 下列选项中,关于方法的命名不正确的是 d a. public string gettype(); b. public boolean isfinished(); c. public void show(); d. public void addkeylistener(listener); 50. 下列选项中,不符合编码规范的是 d a. try { //.... ... } catch (ioexception ioe) { ioe.printstacktrace (); } b. throw new ioexception("writing data error! data: " + data.tostring()); c. try { // ... ... } catch(ioexception ioe) { //... ... } finally { try { out.close(); } catch (ioexception ioe) { //... ...
} } d. try { // ... ... } catch(ioexception ioe) { //... ... } 答案: 答案: 1.b 2.c 3.d 4.a 5.d 6.c 7.b 8.c 9.a 10.c 11.a 12.d 13.a 14.b 15.d 16.d 17.c 18.d 19.d 20.c 21.c 22.d 23.b 24. d 25. c 26.b 27.d 28.c 29.b 30.d 31.a 32.c 33.d 34.b 35.d 36.c 37.a 38.c 39.a 40.d 41.c 42.a 43.c 44.c 45.d 46.d 47.a 48.d 49.d 50.d
三.多选题(共 10 题,每题 2 分) 多选题(
1. 下述各项中,符合编码规范的是 ab a. 分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引 用它们的语句左对齐。 b. 较长的语句、表达式或参数(>80 字符)要分成多行书写,长表达式要在低 优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩 进,使排版整齐,语句可读。 c. 建议把多个短语句写在一行中,便于阅读 d. if, for, do, while 等语句的执行语句如果只有一行的话,不需要要加括号 {}。 2. 下述各项中,不符合编码规范的是 ab a. 相对独立的程序块之间、变量说明之后可以不加空行。 b. 对齐只使用空格键,对于在工具中,可以使用 tab 键。 b. 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、 之后或者前后要加空格; d. if, for, do, while, case, switch, default 等语句自占一行。 3. 下述各项的代码中,符合编码规范的是 cd a. for (...) { ... // program code }
b. void example_fun( void ) { ... // program code } c. if (filename != null && new file(logpath + filename).length() < logconfig.getfilesize()) { ... // program code } d. logfilename now = null; logfilename that = null; 4. 下述各项的代码中,符合编码规范的是 bd a. if(writetofile) writefilethread.interrupt(); b. if(writetofile) { writefilethread.interrupt(); } c. if(log.getlevel() < logconfig.getrecordlevel()) { return; } logwriter writer; d. if(log.getlevel() < logconfig.getrecordlevel()) { return; } logwriter writer; int index; 5. 下述各项中,不符合编码规范的是 ac a. int a, b, c; b. flag=! isempty; i ++; c. if (current_time >= max_time_value) d. p . id=pid; 6. 下述各项中,关于注释的描述正确的是 ad a. 注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语 句的注释)相邻位置。 b. 注释也可放在下面,如放于上方则需与其上面的代码用空行隔开。 c. 注释与所描述内容可以不采用同样的缩排。 d. 将注释与其上面的代码用空行隔开。 7. 下述各项中,关于注释的描述错误的是 ac a. 对简单的变量的定义和分支语句(条件分支、循环语句等)可以不编写注释。 b. 对于 switch 语句下的 case 语句,如果因为特殊情况需要处理完一个 case 后进入下一个 case 处理,必须在该 case 语句处理完、下一个 case 语句前加上 明确的注释。
c. 建议在代码写作完成后,统一添加注释。 d. 注释的内容要清楚、明了,含义准确,防止注释二义性. 8. 下述选项中,关于命名描述正确的是 ac a. 包名采用域后缀倒置的加上自定义的包名,采用小写字母。 b. 包名可以根据需要自己定义即可,采用小写字母。 c. 类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大写、 其余字母使用小写的大小写混合法。 d. 类名和接口使用类意义完整的英文描述,第一个单词的字母使用小写、剩余 单词首字母大写其余字母小写的大小写混合法。 9. 下述选项中,关于类的设计描述不正确的是 bd a. 明确类的功能,精确(而不是近似)地实现类的设计。 b. 一个类可以实现多组相近的功能。 c. 所有的数据类必须重载 tostring() 方法,返回该类有意义的内容。 d. 接口方法参数应由调用者和被调用者均对参数进行合法性检查。 10. 下述选项中,关于异常的处理描述正确的是 ab a. 数据库操作、io 操作等需要使用结束 close()的对象必须在 try -catch-finally 的 finally 中 close()。 b. 异常捕获后,如果不对该异常进行处理,则应该纪录日志或者 ex.printstacktrace() 。 c. 自己抛出的异常不需要填写详细的描述信息。 d. 运行期异常使用 runtimeexception 的子类来表示, 必须在可能抛出异常的方 法声明上加 throws 子句。非运行期异常是从 exception 继承而来的,不用在方 法声明上加 throws 子句。 答案 1.ab 2.ab 3.cd 4.bd 5.ac 6.ad 7.ac 8.ac 9.bd 10.ab
四.改错题(共 2 题,每题 5 分) 改错题(
第一题 /** * delexpimplog * * @param request * * * request indexes * @param indexes * @param operatelog operatelog
*/
[邵洪岗 1]
public void delexpimplog(httpservletrequest request,
integer[] indexes, operatelog operatelog[邵洪岗 { // 初始化返回结果码 portaloperlog =
2])[邵洪岗 3]
(portaloperlog)beanmaker.getbean("portaloperlog"); // 初始化删除失败记录数 int errorcount = 0; expimplog expimplog = null; for (int i = 0; i < indexes.length; i++) { integer index = indexes[i]; try { expimplog = expimpdao.findbyinnerindex(index); if (null == expimplog) { // 写操作失败日志 portaloperlog.logdeletefail(request,"expimplog deleted ","by others",operatelog); continue; } // 删除导入日志 expimpdao.deloneecinfo(expimplog); file file = new file(expimplog.geterrorfile()); if ("1577"[邵洪岗 file.exists())[邵洪岗 { { runlog.info("delete file success: filename =" + expimplog.geterrorfile()); } } else { runlog.error("delete file fail: filename =" + expimplog.geterrorfile() + " errormessage : file not exist"); //删除失败,失败记录加 1
4].equals(request.getstatecode()) &&
5]
if (file.delete())
errorcount++; } // 记录操作结果日志 portaloperlog.logdeletesucc(request, expimplog, "delete expimplog success", operatelog); } catch (exception e)[邵洪岗 { e); // 删除失败,失败记录加 1 errorcount++; } } portalresult.setdelerrornum(errorcount); } }
6]
runlog.error("delete expimplog fail! innerindex=" + index,
第二题 /** * 获取通知地址分发消息。 * @author wangxiaoya * @date { string str [] = null;[邵洪岗 //获取各个部件的通知地址 获取各个部件的通知地址 str = outnotify.getresult(); stringbuffer b = null;[邵洪岗 bufferedreader in = null; connection conn = null; aplresultset rs = null; string sql= ""; file file = null; ; for (int i = 0; i < str.length; i++) 2010-7-19 */ public void cycleinfo()
7]
8]
{ if( null != str)[邵洪岗 { } conn = db.getconnection();[邵洪岗
9]
log.log(priority.debug, " str not null");
10]
try[邵洪岗 11] { in = new bufferedreader(new filereader(file));[邵洪岗 b = new stringbuffer(); } catch { } } } }
12]
[邵洪岗 13](ioexception ex)
throw ex;
以上是关于编码规范考试的主要内容,如果未能解决你的问题,请参考以下文章