PHP Как перехватить конкретное исключение «$x должно быть массивом» в try/catch?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP Как перехватить конкретное исключение «$x должно быть массивом» в try/catch?

Сообщение Anonymous »

Я пытаюсь отправить в наш регистратор ошибок конкретное сообщение об ошибке, касающееся контекста ошибки, которая возникает именно потому, что переменная, передаваемая в array_key_exists, не является массивом. Я хочу быть очень конкретным в своем сообщении об ошибке, поэтому я хочу иметь уловку, которая конкретно возвращает некоторую информацию о контексте ТОЛЬКО тогда, когда этот конкретный $x не является исключением массива, но я могу' Не знаю, как конкретно искать это исключение, есть ли способ?
Так, например, у меня есть:

Код: Выделить всё

try {
// blah blah some stuff
array_key_exists('blah', $maybeAnArray)
// blah blah more stuff
} catch ( Exception $e ) {
logger()->error($e);
// send notification that says $maybeAnArray is not an array because of blah blah, do something about it when you see this error
}
Только в приведенном выше случае исключение $e будет перехвачено для ЛЮБОГО исключения, а не только для исключения массива.
Есть есть способ сделать что-то похожее на оператор if, где вы должны сделать что-то вроде:

Код: Выделить всё

if(!is_array($maybeAnArray) {
// throw Exception $e and log error with specific details
}
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... -try-catch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»