Обработка ошибок
При вызове удаленных серверных методов могут происходить разного рода ошибки: синтаксические ошибки, ошибки времени исполнения, ошибки при вызове методов. RS имеет механизмы оповещения о происходящих ошибках.
Реакция на ошибки немного различается при синхронном и асинхронном вызове. Если при синхронном вызове произошла ошибка, механизм обработки ошибок выбрасывает сообщение об ошибке в окно браузера. Текстом сообщения является message свойство call объекта. Если ошибка происходит при асинхронном вызове, то вы можете ее перехватить, определяя error callback функцию.
При асинхронном вызове передаете ссылку на error callback функцию в качестве параметра. Т. к. передается указатель на функцию, то при таком вызове можно использовать только JavaScript. Примеры с использованием объекта ссылающегося на серверную страницу и без:
callObject = ASPObject.methodName(p1, p2[,...], callbackFunction, errorCallbackFunction, context)
callobject = RSExecute(url, methodName, p1, p2[,...], callbackFunction, errorCallbackFunction, context)
При синхронном и асинхронном вызове вы можете получать информацию о происходящих ошибках через свойства call объекта. Если вы определяете error callback функцию, то call объект передается в качестве параметра как и в случае callback функции. Полезные свойства call объекта при обработке ошибочных ситуаций:
Следующий пример демонстрирует работу error callback функции в клиентском скрипте.
<script language = "JavaScript" for = "btnSquare" event = "onclick"> rsMath = RSGetASPObject("rsadd.asp"); number1 = txt1.value; context = "squaring"; co = rsMath.square(number1,showResults,showErrors,context);
function showErrors(co){ msg = "The raw data returned by the remote method call is " msg = msg + co.data alert(msg); msg = "The following error occurred during the " msg = msg + co.context msg = msg + " remote scripting call:\n" msg = msg + co.message; alert(msg); } </script>