powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Философия обработок ошибок PHP
21 сообщений из 21, страница 1 из 1
Философия обработок ошибок PHP
    #32879615
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, что то не могу найти как правильно тут обрабатывать ошибки, нет что то тут конструкций

try


except


finally

Подскжите плз, как тут это все происходит

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32879662
sky2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32879723
Hup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там все просто до безобразия =)
В РНР еще не работал с этим плотно, но очень похоже на C#

Типичный пример(деление на ноль!)
При делении на ноль веполнение программы останавливается и с жуткими матами прога падает.

Код: plaintext
1.
2.
3.
4.
5.
6.
int n =  100 ;
int i;
for(i = - 10 ; i <=  10 ; i++)
{
   int j = n / i; // когда i ==  0  проге прийдет хана
}

Можно легко подобное исправить =)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try{
   int n =  100 ;
   int i;
   for(i = - 10 ; i <=  10 ; i++)
   {
      int j = n / i; // когда i ==  0  возникнет исключение пита Division by Zero
   }
}
catch(Exception ex) // ловим все исключения без разбору, но можно и выборочно 
{WriteLine("Было деление на ноль, выполнение программы будет продолжаться далее");}

Вот и весь фокус... Очень интересно работать с БД...

--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32879745
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HupТам все просто до безобразия =)
В РНР еще не работал с этим плотно, но очень похоже на C#

Типичный пример(деление на ноль!)
При делении на ноль веполнение программы останавливается и с жуткими матами прога падает.

Код: plaintext
1.
2.
3.
4.
5.
6.
int n =  100 ;
int i;
for(i = - 10 ; i <=  10 ; i++)
{
   int j = n / i; // когда i ==  0  проге прийдет хана
}

Можно легко подобное исправить =)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try{
   int n =  100 ;
   int i;
   for(i = - 10 ; i <=  10 ; i++)
   {
      int j = n / i; // когда i ==  0  возникнет исключение пита Division by Zero
   }
}
catch(Exception ex) // ловим все исключения без разбору, но можно и выборочно 
{WriteLine("Было деление на ноль, выполнение программы будет продолжаться далее");}

Вот и весь фокус... Очень интересно работать с БД...

--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.

Вообще не понятно к чему ты это все...
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32879822
Hup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
топик называется как?
Oracle
Философия обработок ошибок PHP

Отмечу слово: Философия
Прежде чем програмить, нужно сначала разобраться чего ты хочешь добиться и что это тебе даст. Я просто показал один пример, который решает довольно деликатную проблемму.

--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32879864
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это вообще для какого языка программирования, для PHP он же не покатит.

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32879872
sky2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
while (true) {
read(http://docs.php.net/en/language.exceptions.html);
}

--
http://jcatki.no-ip.org/c++/bart.jpg
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880288
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<html>

<head>
<title></title>
</head>

<body>

<?php

try {
$error = 'Always throw this error';
throw new Exception($error);

// Code following an exception is not executed.
echo 'Never executed';

} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

</body>

</html>


результат


Parse error: parse error in D:\Program Files\PHP Expert Editor\php109.tmp on line 11


O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880294
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for PHP 4


O*R*A*C*L*E

(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880314
sky2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри в ссылках я опечатался хотя вы бы могли и сами заметить когда зашли
php5 http://docs.php.net/en/language.exceptions.html
php4/5 http://docs.php.net/en/ref.errorfunc.html

exception появились тока с php5
у вас видимо php4
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880322
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том то и дело, про эту конструкцию я как бы знал, она стандартна для всех языков, а вот тут другой подход совершенно, и сколько не читаю не могу въехать.

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880453
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
приведи пример кода с ошибкой (без обработчиков ошибок, без исключений) и на словах объясни, как ты хочешь обработать ее
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880469
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
global $db;
$db = NewADOConnection('postgres');
$ip='localhost';
$login = $inUserName;
$pass=$inPassword;
$dbname='new_db';
$ok = $db->Connect($ip, $login, $pass, $dbname);

чтобы при невозможности коннекта, котила на другую страницу

O*R*A*C*L*E
(Don't despair my little fried...)
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880508
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читай доки к adodb. Метод Connect возвращает false если не смог подключиться к СУБД.
Код: plaintext
1.
2.
if (!$ok) {
   header("Location: http://www.example.com/error.php");
}

К тому же у adodb есть свой обработчик ошибок, которій можно переписать
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32880514
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там после header-а еще нужен
exit;
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32884833
oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hupтопик называется как?
Oracle
Философия обработок ошибок PHP

Отмечу слово: Философия
Прежде чем програмить, нужно сначала разобраться чего ты хочешь добиться и что это тебе даст. Я просто показал один пример, который решает довольно деликатную проблемму.

--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.


Один вопрос, а вот твой слогон внизу, это ты сам придумал или использовал чьюто мысль?
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32886660
Hup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle
Нет конечно и я не претендую на оригинальность своего слогана, скажем так:
"Он мне просто понравился =)"
Между тем, ты начинаешь постепенно меня поражать своей узколобостью =(
Что за заявления?
Oracle
А это вообще для какого языка программирования, для PHP он же не покатит.

Конечно не катит... Даже ребенку(немного образованному) понятно, что в РНР не обьявляютя переменние явно(или как его там, т.е. так int i = 0;). Как там говорится: "РНР со слабо типизированним обьявлением... {или чего-то там еще}". Ты же сам просил привести основы, вот и я привел. А теперь гнешь пальцы и начинаешь ругаться... Нехорошо так поступать =( Если хочешь в своем примере круто извратнуться, то можешь сам придумать исключение типа excpDBError и вызывать его когда тебе необходимо. Ладно, что-то я сам начинаю поступать плохо... не воспринимай все в серьез, но и не пропускай мимо ушей =)))

--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32886716
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hup в РНР не обьявляютя переменние явно(или как его там, т.е. так int i = 0;)
ПХП позволяет не объявлять переменные.
Но встретив такую необъявленную переменную, чесно предупреждает об этом разработчика, сгенерировав Notice.
Многие считают такой код грязным и непрофессиональным.
К тому же, необъявленнык переменные - один из источников дыр в скриптах.
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32886846
Hup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макс М. ,
я когда в первый раз увидел подобное в РНР(до этого был только С++ и C#), то просто ужаснулся... Так так, а int, а float, а string? Это просто напасть какая-то. Как-то противно начал поглядывать на РНР, но привык, хотя по возможности перепрыгиваю на C#
--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32887080
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
HupТак так, а int, а float, а string?И что? Потому что у PHP, в отличии от всяких С++, своя область применения. И в этой области нестрогая типизация данных весьма удобна.
...
Рейтинг: 0 / 0
Философия обработок ошибок PHP
    #32943662
Fabrichenko Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hup
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
try{
   int n =  100 ;
   int i;
   for(i = - 10 ; i <=  10 ; i++)
   {
      int j = n / i; // когда i ==  0  возникнет исключение пита Division by Zero
   }
}
catch(Exception ex) // ловим все исключения без разбору, но можно и выборочно 
{WriteLine("Было деление на ноль, выполнение программы будет продолжаться далее");}


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


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