Use dedicated exceptions if unlinking failed for reasons other than the
file not existing
This commit is contained in:
parent
b9d82d672a
commit
5433811176
18
exceptions/MDFailedToDeleteFile.php
Normal file
18
exceptions/MDFailedToDeleteFile.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?PHP
|
||||
declare(strict_types = 1);
|
||||
|
||||
/**
|
||||
* Reports a failure to create a new directory.
|
||||
*/
|
||||
final class MDFailedToDeleteFile extends Exception {
|
||||
/**
|
||||
* Error message.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function errorMessage() {
|
||||
//error message
|
||||
return 'Failed to delete file';
|
||||
|
||||
}
|
||||
}
|
18
exceptions/MDFilePermissionsException.php
Normal file
18
exceptions/MDFilePermissionsException.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?PHP
|
||||
declare(strict_types = 1);
|
||||
|
||||
/**
|
||||
* Reports a failure due to insufficient permissions in the file system.
|
||||
*/
|
||||
final class MDFilePermissionsException extends Exception {
|
||||
/**
|
||||
* Error message.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function errorMessage() {
|
||||
//error message
|
||||
return 'Insufficient file system permissions';
|
||||
|
||||
}
|
||||
}
|
@ -110,7 +110,15 @@ final class MD_STD {
|
||||
public static function unlink(string $filename):void {
|
||||
|
||||
if (\unlink($filename) === false) {
|
||||
throw new MDFileDoesNotExist("Failed to delete: $filename");
|
||||
if (!\is_file($filename)) {
|
||||
throw new MDFileDoesNotExist("Failed to delete $filename, it did not exist");
|
||||
}
|
||||
else if (!\is_writable(dirname($filename))) {
|
||||
throw new MDFilePermissionsException("Failed to delete $filename");
|
||||
}
|
||||
else {
|
||||
throw new MDFailedToDeleteFile("Failed to delete $filename");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user