Java异常处理
六种异常处理的陋习
你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
Java代码
OutputStreamWriter out = ...
java.sql.Connection conn = ...
try { //捕获异常
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(
"select uid, name from user");
while (rs.next())
{
out.println("ID:" + rs.getString("uid") // ⑹
",姓名:" + rs.getString("name"));
}
conn.close();
out.close();
}
catch(Exception ex) { //异常处理
ex.printStackTrace();
}
OutputStreamWriter out = ...
java.sql.Connection conn = ...
try { //捕获异常
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(
"select uid, name from user");
while (rs.next())
{
out.println("ID:" + rs.getString("uid") // ⑹
",姓名:" + rs.getString("name"));
}
conn.close();
out.close();
}
catch(Exception ex) { //异常处理
ex.printStackTrace();
}
作为一个Java程序员,你至少应该能够找出两个问题。但是,如果你不能找出全部六个问题,请继续阅读本文。
本文讨论的不是Java异常处理的一般性原则,因为这些原则已经被大多数
相关文档:
Java中的访问权限控制符有四个.
作用域_____当前类____同一package___子孙类____其他package
public______√___________√__________√___________√
protected___√___________√__________√___________×
friendly_____√___________√__________×________ ......
1)静态变量本身不会被回收
2)静态变量所引用的对象是可以回收的。
第一点大家应该没有疑问,下面我证明第2点:
看下面的例子及注释。自己可以运行试一下, 注意加上-verbose:gc参数
java -verbose:gc TestStaticGc
// TestStaticGc.java
public class TestStaticGc {
& ......
真是惭愧啊, 学了怎么久 java, 现在才知道 java 的基本数据类型是不存在有符号和无符号这种东西的. 平时都没有搞字节和位之类的运算, 所以倒是没有注意到这个方面呢.
JAVA中的基本数据类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。(这句抄的)
Java简单数据类型
......
数据库连接
流是指一连串流动的字符,是以先进先出的方式处理的。
构造一个文件输入流对象:InputStream o = new FileInputStream(“a.txt&rdquo ......