Java编程中的常见错误及解决方法
1. 避免使用带内错误指示符
带内错误指示符是方法返回的值,它既可以表示合法的返回值,也可以表示表示错误的非法值。常见的带内错误指示符示例包括:
- 一个有效的对象或一个空引用。
- 一个表示正值的整数,或 -1 表示发生错误。
- 一个有效的对象数组或一个表示不存在有效对象的空引用。
使用带内错误指示符要求调用者检查错误,但这种检查常常被忽略。不检查此类错误条件不仅违反了相关安全编码标准,还可能传播无效值,这些值在后续计算中可能被视为有效。
在 Java 中,最好通过抛出异常而不是返回错误代码来指示异常情况。异常会跨作用域传播,并且不像错误代码那样容易被忽略。使用异常时,错误检测和错误处理代码与主控制流是分开的。
非合规代码示例 :
static final int MAX = 21;
static final int MAX_READ = MAX - 1;
static final char TERMINATOR = '\\';
int read;
char [] chBuff = new char[MAX];
BufferedReader buffRdr;
// Set up buffRdr
read = buffRdr.read(chBuff, 0, MAX_READ);
chBuff[read] = TERMINATOR;
如果输入缓冲区最初位于文件末尾, read()
方法将返回 -1,尝试放置终止