Я делаю автоматизацию Тестирование с помощью JavaScript (JScript на самом деле, но я чувствую, что это применимо к любому), и мне интересно, знает ли кто-нибудь способ выбросить исключение внутри метода прототипированного объекта и улавливать его внешней функцией, как показано ниже. MyObject будет вызываться внутри внешней функции («TestCase», которая будет запускаться на программном обеспечении с помощью программного обеспечения для тестирования TestComplete).Выбросы исключений внутри прототипальных методов, не попадающих во внешний улов try (JavaScript)
function MyObject()
{
//Object properties
}
//Inherits object properties and methods from ParentObject
MyObject.prototype = new ParentObject();
MyObject.prototype.constructor = MyObject;
MyObject.prototype.foo = function()
{
//Will try to perform some action and may throw an exception
}
В отдельном файле (после изучения более, это, кажется, главная проблема, но не может быть решена за счет всеобъемлющей структуры кода/библиотека):
function TestCase()
{
try
{
var object = new MyObject()
object.foo();
}
catch(e)
{
//Log an error
}
finally
{
//Clean up
}
}
То, что я вижу сейчас, что TestCompl ete 10 (мой IDE/Debugger по существу) вызовет ошибку Runtime, заявив, что исключение выбрано и не поймано, хотя функция вызывается внутри внешнего try catch. У меня была эта работа, используя только другие регулярные функции, и мне нужно, чтобы она работала таким образом, чтобы при возникновении исключения она выходила на catch, заканчивая тестовый пример, а затем очищалась от шагов тестового примера.
Спасибо!
Ваше наследство неверно. http://blog.slaks.net/2013-09-03/traditional-inheritance-in-javascript/ – SLaks
@SLaks - лучше? Это была опечатка – JMoser
Нет (ну, немного). Читайте мой блог. – SLaks