if (!fileName.endsWith(".exe")) {
throw new IOException("文件后缀名不对");
}
if (!fileName.equals("C:\abc.exe")) {
throw new FileNotFoundException("文件名称不对");
}
以上代码两条if语句都没问题
if (!fileName.equals("C:\abc.exe")) {
throw new FileNotFoundException("文件名称不对");
}
if (!fileName.endsWith(".exe")) {
throw new IOException("文件后缀名不对");
}
以上代码第二条if判断语句总为true
这是为什么呢?
if (!fileName.equals("C:\abc.exe")) {
throw new FileNotFoundException("文件名称不对");
}
这个的条件指该文件是否不存在
实际上已包含
if (!fileName.endsWith(".exe")) {
throw new IOException("文件后缀名不对");
}
这个条件里面的后缀名是否正确了,就是说第一个条件成立了,那么后面这个条件就肯定也成立的
分析:
第一个if判断条件明显包含第二个if判断条件。也就是第一个if判断条件满足的时候,第二个肯定也是满足的。
第一个判断不满足的时候,会抛出异常。抛出异常后面的代码不会再执行。
不好理解的话,把判断中的取反!去掉吧。
如有帮助,望点击【本回答采纳】支持一下。
if (!fileName.equals("C:\abc.exe")) {
throw new FileNotFoundException("文件名称不对");
}
if (!fileName.endsWith(".exe")) {
throw new IOException("文件后缀名不对");
}