С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
__PION__
956 / 797 / 85
Регистрация: 21.07.2010
Сообщений: 3,521
1

Продолжение работы после исключения

14.06.2013, 13:15. Просмотров 1002. Ответов 3
Метки нет (Все метки)

Комрады, объясните такую вещьч -
есть скрипт, который запускается раз в сутки, смотрит в БД пути к файлам, идет туда, читает их, если формат подходящий (кроме - картинок, архивов.. и т.п.) и ложит в другую таблицу текст из только что отсканированного файла.
Мне нужно, чтобы скрипт продолжал работать даже если он на пути встретит, например, картинку, а не останавливался с выводом ошибки.
Как сделать? использовать if или try?
вот код
PHP
1
2
3
if (in_array($ext, $enableFiles)) {
   // тут выполняем нужные действия
}
и с try
PHP
1
2
3
4
5
6
7
8
9
try {
  if (!in_array($ext, $enableFiles)) {
     throw new Exception('Неверное расширение файла!');
  } else {
     // тут выполняем нужные действия
  }
} catch (Exception $e) {
                
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 13:15
Ответы с готовыми решениями:

Вывод ответа и продолжение работы скрипта
Нужно реализовать следующее, скрипт выводит ответ например echo 'ok'; или...

Flush() и продолжение работы скрипта
Если скрипт после flush() больше ничего не выводит в браузер, а продолжает...

Получить response body после die или окончания работы скрипта
Доброго вечера, весь в мыле, выручайте, есть скрипт он работает, и в каких...

Продолжение в изучение PHP
Привет всем, я нужен совет ваш, как профи. Я работаю системным администратором...

В продолжение темы улучшить ссылку
================== include не работает. если делать так как выше - к...

3
hunker
86 / 65 / 4
Регистрация: 03.02.2013
Сообщений: 176
14.06.2013, 13:33 2
Имхо, и так, и так. Напиши 2 функции, в одной оставь проверку бд, в другой вызывай первую. Со временем может будет такое, что проверка будет производиться по разным параметрам, исключения будут выкидываться разные, а функция, которая будет вызывать вторую и ловить Exception'ы, будет оставаться неизменной.
Но это сугубо моё субъективное мнение)

Добавлено через 4 минуты
Собсно:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function first()
{
    if (!in_array($ext, $enableFiles)) {
     throw new Exception('Неверное расширение файла!');
  } elseif (false) {
     throw new Exception('Suffer');
  } else {
     // тут выполняем нужные действия
  }
}
 
function second()
{
    try {
        $this->first()
    } catch (Exception $e) {
        return $e->getMessage();
    }
}
1
__PION__
956 / 797 / 85
Регистрация: 21.07.2010
Сообщений: 3,521
14.06.2013, 14:09  [ТС] 3
hunker, а скрипт не остановится здесь
Цитата Сообщение от hunker Посмотреть сообщение
try {
$this->first()
если вдруг картинка попадется?
0
hunker
86 / 65 / 4
Регистрация: 03.02.2013
Сообщений: 176
14.06.2013, 14:30 4
Нет, не остановит. Если хочешь сохранять результат работы скрипта, какие файлы являются картинками, можешь в выбросе исключений это делать, а потом при вызове сохранять в файл. Если тебе просто надо, чтоб скрипт обходил стороной картинки, вообще не выбрасывай исключения в первой функции.
Твой первый вариант как раз подходит чтобы просто обходить стороной файлы с ненужным расширением.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 14:30

Продолжение $i++ в таблице с постраничной навигацией
Здравствуйте, у меня возникла проблема в таблице на сайте. Проблема состоит в...

Как вместо вывода echo выполнить продолжение скрипта
Здравствуйте! Есть станица php. В ней определенный код выполняет проверку на...

Продолжение работы после исключения
Здравствуйте. Возникла следующая ситуация: обрабатываю исключение в программе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru