类型错误:无法调用未定义的方法“closeFileCSV” - try/finally block
TypeError: Cannot call method "closeFileCSV" of undefined -- try/finally block
我目前有一个这种格式的尝试/最终块:
try {
var someOtherObject = new SomeOtherObject(param1, param2);
someOtherObject.doStuff();
// Object that basically holds a 'result set' of csv rows.
var csv = new CsvObject();
csv.openCSV(); // does not throw an error
do {
try {
// Code that grabs stuff from the csv in a straightforward fashion.
} catch (e) {
log.info(e); // Log the error and continue on.
}
} while (csv.hasNext());
} finally {
csv.closeFileCSV(); //throws a TypeError: Cannot call closeFileCSV() on undefined.
}
循环中没有抛出任何错误,也没有我在 finally 块之外可以告诉的任何其他错误。 谁能给我一些线索,说明为什么在最终块中调用closeFileCSV时它会抛出TypeError? 我不是JavaScript专家,但似乎范围在这里不应该是一个问题。 我知道csv被正确初始化,因为try块使用该对象来做事并且没有抛出任何错误。
我希望我只是没有看到明显的东西。 让我知道是否需要粘贴更多代码才能解决此问题。
谢谢。
我已经确定变量someOtherObject返回了一个空对象。 因此,当调用 doStuff(( 方法时,会抛出异常。 但是,一旦发生此异常,将立即触发 finally 块;在 finally 块中,抛出 TypeError 是因为 csv 尚未在 try 块中初始化。
然而,后一个错误是唯一显示的错误,这是混淆的根源。 一旦我解决了某个OtherObject的问题,代码就可以工作了。(我还在关闭方法周围添加了保护,以确保 csv 已初始化(。
相关文章:
- errors with Javascript try catch
- JSON.parse,已经在try/catch块中,仍然抛出语法错误
- 错误处理try&catch+回调
- 在try-catch块内的HTML文件中导入JavaScript文件
- 如果总是执行finally,为什么try会返回未更改的值
- 为什么这个生成器会跳过 try 块之外的收益
- 有没有一种方法可以将try-catch添加到Javascript中的每个函数中
- try声明变量的作用域
- Javascript Try Catch for DIV
- Safari 在尝试使用 Javascript try/catch 访问父窗口对象时未捕获异常
- 与在异步回调链中使用 try catch 块相比,返回异常有什么优势
- 在 Javascript 中,即使从未抛出异常,使用 try-catch 块是否昂贵
- JavaScript 中的 try-catch:如何获取原始错误的堆栈跟踪或行号
- 使用 try catch(e) 进行浏览器功能检测
- 了解 JavaScript 中的异常处理:当更改 try/catch 块的位置时,获得不同的输出
- 在 JavaScript 中用“try catch”包装每个方法的性能问题
- execScript try/catch in IE 8 中的怪异之处
- Javascript代码仅在FireFox中的try-catch块中失败
- 类型错误:无法调用未定义的方法“closeFileCSV” - try/finally block
- 在 AJAX 响应中查找嵌套属性,这是 try/catch 的情况