在java中处理文件读写的标准方法是这样的:
try
{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file.dat"));
oos.writeObject(h);
oos.close();
}
catch (FileNotFoundException ex)
{
}
catch (IOException ex)
{
}
Run Code Online (Sandbox Code Playgroud)
但是我对这段代码感到困扰,因为如果抛出异常,这里可能永远不会关闭文件.当然,我们可以添加一个finally子句并初始化try块外的ObjectOutputStream.但是,当你这样做时,你需要再次在finally块中添加另一个try/catch块...这只是丑陋的.有没有更好的方法来处理这个问题?
我有2个表,emp和dept(员工和部门).假设我想显示每个部门所有工资的总和,我可以使用类似的东西:
select sum(sal), deptno
from emp
group by deptno
Run Code Online (Sandbox Code Playgroud)
现在这样有效,但是说列表中有一个没有员工的部门,我也想让它出现,我该怎么做?我已经尝试了连接,nvl函数,但到目前为止没有运气.例如,这可行,但它不会显示空部门:
select sum(emp.sal), dept.deptno
from emp, dept
where emp.deptno=dept.deptno
group by dept.deptno
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!