Способ обработки ошибки часто зависит от контекста.Есть определенные ошибки, которые вы можете ожидать.Примером этого может быть что-то вроде внешнего нарушения ключа.В этом случае вы можете просто зарегистрировать ошибку (потенциально записав ее как информационную, а не как соответствующую ошибку) и вернуть дружественное пользователю сообщение в пользовательский интерфейс, чтобы уведомить пользователя о возникновении проблемы.Другие ошибки являются неожиданными.Вероятно, они также должны регистрироваться и сообщаться пользователю с возможными дальнейшими шагами для получения трассировки исключений для команды разработчиков (например, по электронной почте и т. Д.).
Многие современные языки программирования в наши дни имеют структурированные возможности обработки исключений, которыеотслеживание и регистрация исключений довольно просто.Существует также ряд каркасов ведения журналов, которые помогут с регистрацией.Хорошие каркасы журналирования в .Net arena включают log4net, nLog и elmah.В Интернете должно быть множество примеров для всех этих каркасов ведения журналов.
Что касается SQL Server, возможности обработки ошибок не настолько развиты.
Общий шаблон для обработкиошибки в хранимой процедуре будут выглядеть примерно так:
create procedure [dbo].[test_dosomework]
(
@param1 int,
@param2 varchar(10)
)
as
begin
declare @errorCode int
select @errorCode = 0
insert table1 (aValue)
values (@param1)
select @errorCode = @@ERROR
if @errorCode = 0
begin
insert table1 (aValue2)
values (@param2)
select @errorCode = @@ERROR
end
return @errorCode
end
. В этом случае, если в одном из операторов вставки возникает ошибка, @ERROR возвращает номер ошибки, @errorCode будет установлен с этим номером ошибки ивозвращаемое значение хранимой процедуры будет номером ошибки.Возвращаемое значение будет 0 для