当前位置:  开发笔记 > 编程语言 > 正文

编译失败:抛出异常还是不抛出异常?

如何解决《编译失败:抛出异常还是不抛出异常?》经验,为你挑选了1个好方法。

我正在为CLR脚本编写.NET On-the-Fly编译器.并且陷入两难境地:在构建失败时抛出异常是否更好?

那么什么是最佳实践观点,哪种方法更合适?

try
{
  compiler.Compile(); // do not throws an exception only if build succeed
}
catch(CompilerException ex)
{
  string err = ex.Message;
}

要么

compiler.Compile(); // throws an exception only in case of crash, etc
if(!compiler.BuildSucceed)
{
  string err = compiler.Output.ToString();
}

Adam Rosenfi.. 5

异常应用于特殊情况.我会说失败的构建并不例外,所以你应该让编译器的接口返回一个表示成功或失败的值(例如bool或enum),并提供一个返回错误列表的接口.这可以简单到返回连接在一起的所有错误的字符串,或者它可能类似于事先将输出流传递给它,并且它会在遇到它们时将每个错误记录到该流.



1> Adam Rosenfi..:

异常应用于特殊情况.我会说失败的构建并不例外,所以你应该让编译器的接口返回一个表示成功或失败的值(例如bool或enum),并提供一个返回错误列表的接口.这可以简单到返回连接在一起的所有错误的字符串,或者它可能类似于事先将输出流传递给它,并且它会在遇到它们时将每个错误记录到该流.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有