Cap*_*mic 9 c# architecture exception-handling
我创建了一个从文件中解析一些文档的类.
class Parser
{
public Parse(string fileName)
{
///
}
}
Run Code Online (Sandbox Code Playgroud)
有时可能会出现解析错误,解析器必须返回某些数据.我为此创建了特殊课程.
class ParsingError
{
// some data
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能正确处理这些错误.我至少有两个选择:
创建我自己的异常或返回值.
方案一
myParser.Parse(fileName, out error);
Run Code Online (Sandbox Code Playgroud)
方案二
try
{
myParser.Parse(fileName)
}
catch(MyParsingException ex)
{
// use ex.Error field
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
如果我没有弄错,那么例外背后的意识形态就是它应该处理一些特殊的东西,这是该方法无意处理的一些情况.
这让我想知道是否例如:
解析器在文件中找到未知字段,或者编码错误
这会被视为特殊情况吗?
.NET land的异常理念与其他平台略有不同.在.NET领域不需要很长时间才能意识到你不再在OZ中,并且经常会抛出异常.
从.NET 4上的MSDN:不返回错误代码.例外是在框架中报告错误的主要方法.
来自.NET 4.5上的MSDN:异常是执行程序遇到的任何错误情况或意外行为.
他们给出的一个例子是客户端无法连接到端点.因此,如果您认为有时网站不可用于网络或其他原因,这不符合传统的"例外"定义,您可以了解他们的创作者如何打算使用例外.
| 归档时间: |
|
| 查看次数: |
8608 次 |
| 最近记录: |