TypeScript中的异常嵌套/包装

时间:2017-04-26 19:51:46

标签: javascript exception typescript error-handling exception-handling

在TypeScript中嵌套/包装异常(原因)是否可能/通常做法,就像在Java中一样?

for file in os.listdir(filename):
    if file.endswith(".pdf"):
        shutil.move(filename + file, filename1 + '/PDF/' + file)
    if file.endswith(".PDF"):
        shutil.move(filename + file, filename1 + '/PDF/' + file)
    if file.endswith(".docx"):
        shutil.move(filename + file, filename1 + '/DOC/' + file)
    if file.endswith(".txt"):
        shutil.move(filename + file, filename1 + '/DOC/' + file)

我的意思是,为try { // do something } catch (e) { throw new MyException("Exception while doing something", e); } 设置自定义ctor可能不是问题,要将MyException arg作为e传递,但报告(打印)堆栈跟踪怎么办?以后呢?

1 个答案:

答案 0 :(得分:1)

如果您正在寻找堆栈跟踪,那么您可以这样做:

SqlDbType.Binary

然后:

function normalizeError(e: any): Error {
    if (e instanceof Error) {
        return e;
    }

    return new Error(typeof e === "string" ? e : e.toString());
}

将打印出类似的内容:

  

错误:1,字符串,真实       在normalizeError(:5:12)
      时间:11:9

如果您要定位try { throw [1, "string", true]; } catch (e) { e = normalizeError(e); console.log(e.stack); } ,那么您可以扩展es6课程,而不是使用此Error功能,但如果您无法定位normalizeError,那么您应该避免扩展本地课程。