在原型方法中抛出异常,未在外部尝试捕获 (JavaScript) 中捕获
Throwing exceptions inside prototypal methods not being caught in outer try catch (JavaScript)
我使用 JavaScript 进行自动化测试(实际上是 JScript,但我觉得它适用于其中任何一个),我想知道是否有人知道一种方法可以在原型对象方法中抛出异常并让它被外部函数捕获,如下所示。 MyObject将在外部函数内部调用(使用名为TestComplete的测试软件在软件上运行的"测试用例")。
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
}
}
我现在看到的是 TestComplete 10(本质上是我的 IDE/调试器)将导致运行时错误,指出抛出异常且未捕获,即使该函数是在外部 try catch 中调用的。 我只使用其他常规函数完成了这项工作,我需要它以这种方式工作,以便在抛出异常时,它将出现捕获,结束测试用例,然后从测试用例步骤中清理。
谢谢!
在一些测试完成论坛上进行更多调查后,这似乎是一个已知问题。 所以这真的与JavaScript/JScript无关。 这在下面的一些论坛帖子中显示,
http://www.sqaforums.com/forums/automatedqa-smartbear-testcomplete/84991-useunit-exceptions.html
http://smartbear.com/forums/f74/t49620/jscript-exception-propagation-between-script-un/
但是,这里有一个更详细的解决方案,您可以做些什么来解决这个问题,它真的很丑陋。 我已经认为这是一个解决方案,但我想知道是否有更好的解决方案,因为我认为这最初是一个JavaScript/JScript错误。
http://smartbear.com/forums/f81/t74287/handling-exceptions-in-different-units/
- LeadLander formalyze_init.js Javascript外部文件
- javascript外部链接文件的可接受数量是多少
- Javascript 外部 API 调用,在 for 循环中使用变量 URL
- Javascript外部对象全局
- 如何通过单击来自javascript外部的复选框来更新AngularJS模型
- 如何在Safari的地址栏中运行javascript(外部URL)
- JavaScript外部文件隐藏源代码
- Javascript外部文件函数赢得'我以前不工作
- Javascript-外部库/文件引用
- 导致对象的Javascript外部文件IE8(Marketo)中出现预期错误
- Javascript:外部函数获胜'不起作用
- Oracle Apex Ghosting Javascript外部文件(bug?)
- 将cookie添加到现有的Javascript外部CSS文件交换中
- 在ajax中运行javascript外部链接甚至内部链接
- AS3/JavaScript外部接口和文件上传
- Elasticsearch javascript外部脚本示例
- 如何使用另一个javascript src调用javascript外部src
- Javascript外部文件链接不正确
- GWT + SmartGWT + Javascript:外部脚本集成
- javascript外部不能与onsen框架一起工作