您的位置:首页 > 其它

day19

2016-03-14 20:18 274 查看
异常

runtimeexception

JVM如何处理异常

main函数收到问题,自己处理,然后继续运行

自己没有处理方法,交给调用main的JVM来处理

JVM有默认的异常处理机制,将异常处理并将异常信息输出到控制台,停止程序

try :检测异常

catch:捕获异常

finally:释放资源

try catch

try catch finally

try finally

当通过try catch将问题处理了程序会继续执行

编译器异常:JAVA程序必须显示处理,否则程序会发生错误无法通过编译

运行时异常 :RuntimeException类及其子类的实例称为运行时异常,其他异常就是编译时异常

运行时异常可以不用再方法上抛出

编译时异常的抛出必须对其进行处理

throw : 在功能方法内部出现的某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常抛出

throws 在方法声明后, 跟的是异常类名,可以跟多个异常类名,用逗号隔开,表示抛出异常,由该方法的调用者处理抛给虚拟机

throw:在方法体内, 跟的是异常对象名,表示抛出异常,由方法内部语句处理,只能跟一个异常对象.

finally:被finally控制的语句一定会执行

自定义异常取决于名字,方便查找错误

运行时异常可以不用抛出

子类抛出的异常只能是父类有的或者是父类异常的子类,不能抛出父类没有的异常,如果有可以try catch

File对应的是路径,

File dir = new File("C:\\Users\\Administrator.USER-20160117MQ\\Desktop");

String[] arr1 = dir.list(new FilenameFilter() {

@Override

public boolean accept(File dir, String name) {

File file = new File(dir,name);

return file.isFile() && file.getName().endsWith(".png");

}

});

for (String string : arr1) {

System.out.println(string);

}

public String[] list(FilenameFilter filter) {
//参数是接口类型,用匿名内部类.重写accept方法.

String names[] = list();

if ((names == null) || (filter == null)) {

return names;

}

List<String> v = new ArrayList<>();

for (int i = 0 ; i < names.length ; i++) {

if (filter.accept(this, names[i])) {
//调用匿名内部类重写的accept方法,父类引用指向子类对象.this对应dir,name[i]对应文件名,返回true添加

v.add(names[i]);

}

}

return v.toArray(new String[v.size()]);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: