Не надо располагать try/catch и throw на одном уровне — в этом случае проще написать if:
try {
...
throw new Exception(...);
...
} catch (Exception $e) {
...
}
в этом случае проще написать if, если можно с примером.
try {
if(! file_exists($file)) {
throw new Exception('file not exist');
}
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
не имеет смысла, поскольку спокойно сокращается доif(! file_exists($file)) {
exit('file not exist');
}