Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по исключениям в PHP / 2 сообщений из 2, страница 1 из 1
13.06.2014, 11:02
    #38668784
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по исключениям в PHP
Есть у меня такой код:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
class HotspotException extends Exception {
	function __construct($code, $message = null, Exception $previous = null) {
		$class = (strpos($code,"_")===false ? '*' : substr($code,0,strpos($code,"_")));
		$text = self::$errmsg[$code];
		$this->class = $class;
		$this->code = $code;
		$this->text = $text;
		$this->message = $message;
		//parent::__construct((empty($message) ? $text : $message), 0, $previous);
	}

}

...

HotspotException::$title = "...";

try
{
	$unifi = new UnifiClass();
	$db = new DBClass();
	$bm = new BM6Class();
	$user = new UserClass($unifi, $db, $bm);
	...
}
catch (HotspotException $e)
{
	if ($e->class == "FAIL")
	{
		echo $e->getHTML();
		exit(0);
	}
}
catch (Exception $e)
{
	die("Unexcepted fail: " . $e->getMessage());
}

...



Я правильно понимаю, что:
1. Если сработает мое исключение с FAIL-кодом (кодом, начинающимся с FAIL_), то отобразится мой текст исключения и работа скрипта завершиться.
2. Если сработает мое исключение с другим (не FAIL) кодом, то ничего не произойдет и работа скрипта в блоке try продолжится.
3. Если сработает не мое исключение, то скрипт завершиться с die-сообщением.
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
13.06.2014, 11:24
    #38668794
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по исключениям в PHP
да.

ток правильней делать так.

ловишь исключение, можешь исправить ситуацию, чтобы дальше работа пошла штатно - делаешь. скрипт продолжит работу.

если не можешь но надо откатить чтото откатываешь и ...
или сразу и ...
порождение этого же исключения выше throw $e;

это вместо вот того ещо что ты разкидываешь по своему коду.

а на всём коде работает глобальный твой колбек, который ловит все не словленные исключения, и уже там.
1)пишем в лог что возникло не поправимое
2)если надо чтото выдаём в ответ
3)завершаем работу.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по исключениям в PHP / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]