Возьмут следующую функцию в качестве примера того, что я хочу сделать:PHP: Добавление к брошенному сообщению об исключении
public function save() {
$this->connect('wb');
try {
if(!$this->lock())
throw new Exception("Unable to acquire configuration locks");
if (!$backup = $this->backup())
throw new Exception("Failed to create configuration backup");
try {
if(!fwrite($this->_pointer, $this->dump("string")));
throw new Exception("Error occured while writing to configuration");
$this->unlock();
$this->disconnect();
} catch (Exception $e) {
if(rename ($backup, $this->_file))
$e .= PHP_EOL."Successfully restored configuration from backup";
else
$e .= PHP_EOL."Failed to restore configuration from backup";
$this->unlock();
$this->disconnect();
throw $e;
}
} catch (Exception $e) {
echo PHP_EOL, $e->getMessage();
}
}
Я вложенный try()
и catch()
заявления. Исключение выбрано из самого внутреннего и поймано, я затем выполняю некоторые функции и выдаю другое исключение. Обратите внимание, где я пишу $e .=
, я понимаю, что это неправильный синтаксис. Я хочу добавить строку в исключение $e->getMessage()
.
Как бы я это сделал?
+1 хорошо и намного чище, что мое предложение! – ManseUK
Спасибо за обзор ManseUK. @Milad Naseri, в конце концов, код должен быть чистым настолько, насколько это возможно, и его легко найти и расширить для новых функций и функциональности. – Rolice
Полностью согласовано. –