Обработка ошибок функции на .NET Core
Если обработчик сигнализирует об ошибке исполнения или загрузки функции на .NET Core, среда выполнения автоматически перехватывает ошибку и возвращает в ответ JSON-документ, содержащий информацию о типе ошибки. Формат этого JSON-документа описан в разделе Вызов функции.
Также информация об ошибке записывается в журнал выполнения, который можно просмотреть с помощью CLI Yandex Cloud или консоли управления
Примеры обработки ошибки
Ситуация 1: пользовательский код выходит за пределы массива, что приводит к выбрасыванию IndexOutOfRangeException
. Среда выполнения перехватывает исключение и формирует из него JSON-документ, содержащий сообщение об ошибке (поле errorMessage
), тип ошибки (поле errorType
) и трассировку стекаstackTrace
).
Код функции:
public class Handler {
public int FunctionHandler(byte[] input) {
readonly var array = new int[]{1, 2, 3, 4, 5};
// в этом месте функция выбросит исключение IndexOutOfRangeException
return array[15];
}
}
Возвращаемый JSON-документ:
{
"errorMessage": "Index was outside the bounds of the array",
"errorType": "System.IndexOutOfRangeException",
"stackTrace": [
...
]
}
Ситуация 2: пользовательский код сигнализирует об ошибке путем механизма выбрасывания
Код функции:
public class Handler {
public int FunctionHandler(byte[] input) {
throw new SystemException("Some error message");
}
}
Возвращаемый JSON-документ:
{
"errorMessage": "Some error message",
"errorType": "System.SystemException",
"stackTrace": [
...
]
}