易截截图软件、单文件、免安装、纯绿色、仅160KB

Java的异常小结

 主要是举个例子说明一下什么用throws,什么时候用try-catch。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
File dir = new File(".");
FileFilter dirFilter = new FileFilter() {
public boolean accept(File pathname) {
return pathname.isFile();
}
};
for (File file: dir.listFiles(dirFilter)) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
print(reader);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
private static void print(BufferedReader reader) throws IOException {
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
}

这是用来输出当前目录下的所有文件的一个小程序。
print函数使用throws是因为在这个函数中如果发生了异常,那么这么函数就无法再执行下去了。
而在main函数的循环中,因为在处理一个文件时发生了异常(可能的原因有很多啊,比如突然被人删除了),我们仍然可以跳过这个文件继续执行,因此使用了try-catch。
总结一下,当在函数中自己可以处理异常时,那么就使用try-catch。如果无法处理,那么就用throws,让外层的函数去处理。


相关文档:

代理模式之Java学习笔记11月07日[转贴]

                         代理模式
代理模式的作用是:
      为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个 ......

java核心技术卷II笔记

 1.简单线程创建
(1)实现Runnable接口,Runnable接口只有一个方法run:
public interface Runnable
{
void run();
}
创建类实现run方法
class MyRunnable implements Runnable
{
public void run()
{
/*任务代码*/
}
}
(2)创建对象
Runnable r = new MyRunnable();
(3)由Runnable创建一个Thread对象:
......

什么样的java代码容易memory leak?

很多developer知道java也可能memory leak,关于这个主题已经有很多文章了。我这里只想分享一下自己的memory leak的经验。
说明一下这里指的memory leak是程序不及时释放heap导致的OutOfMemoryError.
首先一种情况是collection或者是map一直被put数据,没有机会remove,导致OutOfMemoryError。尤其是当collection或者是map ......

Java学习书籍推荐

1、JavaSE的学习书籍
英文名:《Thinking in Java》
中文名:《Java编程思想》
图  片:  
作  者:Bruce Eckel
出版社:机械工业出版社
阅读方法:这本书并不适合一点基础都没有的同学进行阅读,强烈建议学的JavaSE。
 然后可以直接学习JavaWEB的内容了,但是如果想备一本书在手边备查的 ......

J2EE、Java SE、Java EE、Java ME 区别

 Java SE=Java Standard Edition
Java EE=Java Enterprise Edition
Java ME=Java Mobile Edition
SE主要用于桌面程序,控制台开发(JFC)
EE企业级开发(JSP,EJB)
ME嵌入式开发(手机,小家电) 
         目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Ja ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号