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

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

14.06.2013, 13:15. Просмотров 1122. Ответов 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 13:15
Ответы с готовыми решениями:

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

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

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

Продолжение работы цикла при возникновении исключения
У меня есть цикл который обрабатывает тексты. for (int i = 0; i < n; i++) { ...

Продолжение работы программы после writeln
Как сделать чтобы программа после вывода writeln дальше работала?почему в процедуре не работает...

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__
958 / 799 / 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
14.06.2013, 14:30
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 14:30

Продолжение работы StreamWriter после завершения
Нужно сделать так что бы: while { StreamWriter sw = new StreamWriter(myTempFile); ...

Продолжение работы кода после падения
Написал программу для авторестарта и отправки команд по расписанию для списка серверов. Список...

File Dialog продолжение работы после выбора файла
В ходе работы программы часто вызывается QFileDialog: configFilePath =...


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

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

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