Обработка исключений в golang

Рейтинг: 1Ответов: 2Опубликовано: 18.04.2015

Как обработать исключение в go?

Есть код

Message.Send(ActiveClients[input].websocket, string(ans.Message)) 

Если вместо input подставить либо строчное значение, либо не существующее числовое, то программа вылетает.

Как это обработать?

Ответы

▲ 6

Согласно философии языка Go в нем нет исключений. В Error handling and Go . Об этом документе Вам уже сообщал @VladD. Настоятельно рекомендую послушать его ;)

Сообщать об ошибках нужно так:

  • Фатальные ошибки с помощью фунции panic(), востановить можно с помощью recover()
  • Не фатальные с помощью возвращаемого значения в последнем параметре.

Настоятельно не рекомендую использовать panic по поводу и без повода. Другими словами почитайте статью и Вам будет понятно, какой подход по обработки принят в Go

▲ 1

В Go нет исключений. Возвращайте коды ошибки, где надо. Есть даже специальный тип для этого.

Использование неверного индекса — не исключение, это ошибка времени выполнения. Даже в языках, в которых есть IndexOutOfRangeException, ловить такое исключение считается дурным тоном. Неправильный индекс — не исключительная ситуация, а грубая ошибка. Такого просто не должно случаться в отлаженном коде.