Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么没有';t File#删除未删除文件时引发异常?_Java_Exception_File Io - Fatal编程技术网

Java 为什么没有';t File#删除未删除文件时引发异常?

Java 为什么没有';t File#删除未删除文件时引发异常?,java,exception,file-io,Java,Exception,File Io,下面的代码抛出断言,但不是异常 if( descFile.exists() ) { check = descFile.delete(); assert(check); } 怎么可能呢?如果文件未被删除,它为什么不抛出异常?根据,file.delete()仅抛出: SecurityException—如果存在安全管理器及其 SecurityManager.checkDelete(java.lang.String)方法拒绝删除 访问该文件 因此,如果未激活安全管理器,则不会出现异常

下面的代码抛出断言,但不是异常

if( descFile.exists() ) {
    check = descFile.delete();
    assert(check);
}
怎么可能呢?如果文件未被删除,它为什么不抛出异常?

根据,
file.delete()
仅抛出:

SecurityException—如果存在安全管理器及其 SecurityManager.checkDelete(java.lang.String)方法拒绝删除 访问该文件

因此,如果未激活安全管理器,则不会出现异常,只会出现常规返回行为,即:

当且仅当成功删除文件或目录时为true; 否则就错了

根据,
File.delete()
仅抛出:

SecurityException—如果存在安全管理器及其 SecurityManager.checkDelete(java.lang.String)方法拒绝删除 访问该文件

因此,如果未激活安全管理器,则不会出现异常,只会出现常规返回行为,即:

当且仅当成功删除文件或目录时为true; 否则就错了

根据,
File.delete()
仅抛出:

SecurityException—如果存在安全管理器及其 SecurityManager.checkDelete(java.lang.String)方法拒绝删除 访问该文件

因此,如果未激活安全管理器,则不会出现异常,只会出现常规返回行为,即:

当且仅当成功删除文件或目录时为true; 否则就错了

根据,
File.delete()
仅抛出:

SecurityException—如果存在安全管理器及其 SecurityManager.checkDelete(java.lang.String)方法拒绝删除 访问该文件

因此,如果未激活安全管理器,则不会出现异常,只会出现常规返回行为,即:

当且仅当成功删除文件或目录时为true; 否则就错了


有几个可能的原因:您没有足够的权限,该文件已被其他进程删除,该文件正被其他进程使用(锁定)…如果该文件被锁定,那么为什么不会发生异常?因为只有存在安全管理器及其SecurityManager.checkDelete(java.lang.String)时才会引发异常方法拒绝删除对该文件的访问。可能有以下几个原因:您没有足够的权限,该文件已被其他进程删除,该文件正被其他进程使用(锁定)…如果该文件被锁定,那么为什么没有发生异常?因为只有当安全管理器存在并且其SecurityManager.checkDelete(java.lang.String)方法拒绝对文件的删除访问时,才会引发异常。可能有几个原因:您没有足够的权限,文件已被其他进程删除,文件正在使用(锁定)通过其他进程…如果文件被锁定,那么为什么不会发生异常?因为只有当安全管理器存在并且其SecurityManager.checkDelete(java.lang.String)方法拒绝对文件的删除访问时,才会引发异常。可能有几个原因:您没有足够的权限,该文件已被其他进程删除,该文件正被其他进程使用(锁定)…如果该文件被锁定,那么为什么不会发生异常?因为只有在安全管理器存在且其SecurityManager.checkDelete(java.lang.String)方法拒绝对该文件的删除访问时,才会引发异常。