Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка ошибок 
:(
    Опции темы
Ciber SLasH
Дата 21.1.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Стало интересно, как лучше обрабатывать ошибки ?
Вот примеры одной и той же функции, но с разным уровнем обработки ошибок:
Код

function incCounter_1($file_name) {
    if ($fp = fopen($file_name, 'r+')) {
        flock($fp, LOCK_EX);
        $st = fread($fp, filesize($file_name));
        rewind($fp);
        fwrite($fp, ++$st);
        flock($fp, LOCK_UN);
        fclose($fp);
        return true;
    } else {
        exit('Error: не возможно открыть файл "'.$file_name.'" !!');
        return false;
    }
}

function incCounter_2($file_name) {
    if (isset($file_name)) {
        if ($fp = fopen($file_name, 'r+')) {
            if (flock($fp, LOCK_EX)) {
                $st = fread($fp, filesize($file_name));
                rewind($fp);
                $ret = fwrite($fp, ++$st);
                if ($ret) {
                    flock($fp, LOCK_UN);
                    fclose($fp);
                    return true;
                } else {
                    flock($fp, LOCK_UN);
                    fclose($fp);
                    exit('Error: не возможно произвести запись в файл "'.$file_name.'" !!');
                    return false;
                }
            } else {
                fclose($fp);
                exit('Error: не возможно запереть файл "'.$file_name.'" !!');
                return false;
            }
        } else {
            exit('Error: не возможно открыть файл "'.$file_name.'" !!');
            return false;
        }
    } else {
        exit('Error: не введён обязательный параметр "имя файла" !!');
        return false;
    }
}

Какую из них лучше использовать в плане обработки ошибок ?
Может достаточно того уровня обработки ошибок, что в функции incCounter_1...
Возможно такой уровень как в функции incCounter_2 — это уже паранойя ?
PM   Вверх
Kefir
Дата 21.1.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



гм... в принципе как хочешь. в принципе, ничего плохого не вижу во втором вариатне, который по мере возможности и пытаюсь использовать.
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 22.1.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



try ... catch в 5 версии облегчает все.
Вторая проверка, во много имеет лишние моменты.
PM ICQ   Вверх
wsr
Дата 23.1.2006, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Fuzzy Logic
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 3.7.2005

Репутация: 1
Всего: 2



А я лично использую
set_error_handler ( "имя_функции" );
Для обработки возникающих ошибок.
Т.е. вместо php ты сам будешь обрабатывать возникающие ошибки.
Я к примеру после возникновения ошибки завершаю выполнение скрипта, и вывожу сообщение о ошибке, строке где она произошла, и имени файла.
Очень удобно.
--------------------
 ICQ : 918-318Сайт : Lock-Team 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.