2016-12-21 4 views
1

Я попытался в течение нескольких дней исследовать, как создать настраиваемое исключение в try/catch.Javascript Custom Exception

Вот что я пытаюсь сделать:

У меня есть включаемый файл JS в моем HTML-страницы. JS-файл определяет пользовательский объект, а также определяет методы для объекта.

Далее, на странице HTML я делаю следующее:

try { 
    MyObj = new CustomObj;  //from the included JS file. 
    MyObj.CustomMethod();  //also from the included JS file. 
} catch(e) { 
    alert("Error in either the create of the object, or the method. Error is " + e.description) 
} 

Мне нужно, чтобы иметь возможность, в коде для CustomMethod(), чтобы установить свойства объекта ошибки, что захваченные в улове заявление. Например:

CustomMethod = function{ 
    try{ 
     document.getelementById("field1").value = "my value"; 
    } catch(err) { 
     //Set the return error 
     ReturnErr.description = "There was an error!"; 
    } 
    }; 

Можно ли это сделать? Из того, что я пробовал, я использовал инструкцию throw, но это не влияет на объект Error, поэтому раздел catch никогда не запускается. По умолчанию пользовательское сообщение отображается только в консоли.

Спасибо заранее.

+0

Возможного дубликата [Как создать пользовательскую ошибку в JavaScript?] (http://stackoverflow.com/questions/783818/how-do-i-create-a-custom-error-in-jav ascript) –

ответ

1

Try:

function MyException(_message, _data) { 
    this.message = _message; 
    this.data = _data; 
    this.name = "MyException"; 
} 

Использования

try{ 
     //...     
    } 
    catch(_error){ 
     throw new MyException(message, _error); 
    } 

Надеется, что это поможет вам разобраться

+0

Спасибо. Но я полагаю, что я не могу изменить (_error) в вашем примере? –

+0

@EricMeans, извините, опечатка, передайте ошибку как второй параметр. –

+0

Извините, я не хотел использовать бросок в блоке catch, но для установки ошибки, которую получает блок catch, в вызываемой функции/методе из блока try. Имеет ли это смысл? –