Перехват ошибок веб-сервисов (веб-сервис Jquery + asp.net) - PullRequest
2 голосов
/ 26 января 2010

Я в поиске приемлемого решения для перехвата ошибок в следующем сценарии: У меня есть веб-сервисы asp.net, которые взаимодействуют с базой данных. Я взаимодействую с веб-сервисом через функцию jjery $ ajax.

Я хотел бы знать, какова принятая стабильная методология для отлова ошибок. Когда данные получены из веб-службы, в моем сценарии есть два типа ошибок:

  • ДБ ошибок
  • AJAX ошибок

Ошибки Ajax могут попадать в часть ошибок функции $ ajax. Я улавливаю ошибки базы данных внутри веб-службы и до сих пор мог придумать только одну идею, как передать их пользователю - упаковать их в массив результатов. Но это решение неудобно. Есть идеи получше?

Вот пример кода, который я использую для доступа к веб-сервису asp.net:

$.ajax({
    type: "POST",

    url: "http://localhost/WebServices/Service.asmx/GetBillingEntities",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(response) {
        var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

       DisplayResults();


    },

    error: function(xhr, status, error) {
        // Display a generic error for now.
        alert("AJAX Error!");
    }

});

Так, должны ли результаты базы данных помещаться в массив результатов и распаковываться туда вручную? Есть ли лучшая система? Спасибо!

Ответы [ 2 ]

5 голосов
/ 27 января 2010

понял:

$(document).ready(function() {
02      $.ajax({
03          type: "GET",
04          url: "AJAX/DivideByZero",
05          dataType: "json",
06          success: function(data) {
07              if (data) {
08                  alert("Success!!!");
09              }
10          }, error: function(xhr, status, error) {
11              DisplayError(xhr);
12          }
13      });
14  });
15   
16  function DisplayError(xhr) {
17      var msg = JSON.parse(xhr.responseText);
18      alert(msg.Message);
19  }
0 голосов
/ 26 января 2010

Что вы можете сделать, это создать исключение в вашем методе GetBillingEntities вашего веб-сервиса. Поймайте исключение, зарегистрируйте некоторые детали и затем перебросьте его. Если ваш метод выдает исключение, он должен попасть в блок «error:».

Таким образом, в основном вы обрабатываете данные об ошибках в вашем сервисе и определяете, как отобразить ошибку пользователю в вашем блоке «error:».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...