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 {
|
public static function unlink(string $filename):void {
|
||||||
|
|
||||||
if (\unlink($filename) === false) {
|
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