Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PDOException не работает!? / 4 сообщений из 4, страница 1 из 1
02.05.2014, 18:55
    #38631520
way2bariton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PDOException не работает!?
Изучаю php. Использую для разработки Endels, не отрабатывает перехват исключений, подскажите плизз что не так. Собственно, вот код:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
function postBodyProcessor($parmBody) {
    return $parmBody;
}

function addPost($parmPost) {
    try {
        $stmt = DB()->prepare("INSERT INTO posts(title, body, userid, ipaddress, status) VALUES (?,?,?,?,?)");
        $stmt->execute(array(substr($parmPost->title, 0, POST_TITLE_LENGTH),
                                    postBodyProcessor($parmPost->body),
                                    $parmPost->userid,
                                    $parmPost->ipaddress,
                                    $parmPost->status));
        $parmPost->id = DB()->lastInsertId();               
        return new RequestHolder(new RequestStatus(RequestStatusConst::STATUS_OK, "Сообщение создано {$parmPost->id}!"), null, $parmPost);
    }
    catch(PDOException $e) {
        return exceptionRequestHolder(DBExceptionTxt($e->getMessage(), "addPost"));
    }
}



Вот код функции DB, она из другого файла подключается через require_once:

Код: php
1.
2.
3.
4.
5.
6.
7.
function DB() {
    global $dbhost, $dbname, $dbusername, $dbpassword;
    $db = new PDO("mysql:host={$dbhost};dbname={$dbname}", $dbusername, $dbpassword);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec("set names utf8");
    return $db;
}



Если я пишу какую-нибудь ерунду в запрос, то все просто "тихо" падает. "Тихо", потому что эти функции вызываются через Ajax, принимают и возвращают JSON, поэтому когда что-то падает, например, на синтаксической ошибке, у меня в браузере тишь и гладь, кроме того, что там ошибка "Uncaught SyntaxError: Unexpected token < ". Ладно бы это было бы при синтаксических ошибках в php коде, но хотя бы то, что должно ловиться рантайм хочется обрабатывать и как-то искать причины. Собственно вопрос, что я делаю не так и почему PDOException не перехватывается!?
...
Рейтинг: 0 / 0
02.05.2014, 19:16
    #38631523
way2bariton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PDOException не работает!?
way2bariton, все работает, вопрос снят, это я дурак...устал, перемудрил и запутался. Впрочем, все равно интересно, кто как отлаживает php код, когда используется Ajax и допустим есть где-то синтаксическая ошибка, или не перехваченное исключение?
...
Рейтинг: 0 / 0
02.05.2014, 20:35
    #38631564
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PDOException не работает!?
way2baritonкто как отлаживает php код, когда используется Ajax и допустим есть где-то синтаксическая ошибка, или не перехваченное исключение?Обычно просто в файрбаге смотрю, что вертается, иногда в лог пишу... - по ситуации.
...
Рейтинг: 0 / 0
02.05.2014, 21:04
    #38631585
way2bariton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PDOException не работает!?
vkleОбычно просто в файрбаге смотрю, что вертается, иногда в лог пишу... - по ситуации. Посмотреть что вернулось не проблема, проблема в том, что если происходит ошибка, синтаксическая например, или ошибся в имени поля/метода класса, имени функции, то все "тихо" умирает, потому что AJAX запрос ничего не получает, просто видимо обрывок ответа приходит и приходится мучительно долго проверять что же именно не так :( Или я что-то не понимаю что еще в таком случае можно посмотреть и где?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PDOException не работает!? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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