day19

异常

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()]);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值