.net 是否有一个“问题”;试一试;惯例?
我有时会在.net framework中看到前缀为“Try”的方法,例如int.TryParse(..) 我假设这意味着该方法与int.parse相同,但包装在try-catch中.net 是否有一个“问题”;试一试;惯例?,.net,try-catch,.net,Try Catch,我有时会在.net framework中看到前缀为“Try”的方法,例如int.TryParse(..) 我假设这意味着该方法与int.parse相同,但包装在try-catch中 这是否意味着,如果我编写的方法周围有一个try-catch(例如日志记录,我从不想引发异常),那么它们也应该以“try”作为前缀?没有与异步操作(BeginXXX-EndXXX)相同的约定,但是,它用于区分与其他代码相同但不会抛出异常的代码(通过吞咽异常或不生成异常) 如果您的代码是另一种不提供异常处理的方法的替代方
这是否意味着,如果我编写的方法周围有一个try-catch(例如日志记录,我从不想引发异常),那么它们也应该以“try”作为前缀?没有与异步操作(BeginXXX-EndXXX)相同的约定,但是,它用于区分与其他代码相同但不会抛出异常的代码(通过吞咽异常或不生成异常) 如果您的代码是另一种不提供异常处理的方法的替代方法,我会在它前面加上Try,因为它在某种程度上是可以识别的,而.NET用户首先会假设它的行为不会抛出异常 这可以通过为成功返回bool并将返回值作为out参数来加强
为了回答这个问题,它不应该仅仅放在任何处理异常的方法周围;只有在提供我概述的行为合乎逻辑的情况下;.NET Framework中某些实例当前提供的行为。您的假设可能是正确的,但这不是
Try***
类型方法的含义
实际上,该方法在调用时不会抛出异常(内部如何管理并不重要)
您会注意到,这些方法返回一个布尔值,指示Try***
是否成功
TryParse
方法特别具有一个out
参数,如果成功,将使用解析结果填充该参数
要直接回答问题:
- 没有具体的公约
- 如果该方法的语义意味着不会抛出异常,但会通知调用代码成功/失败,则可以将其命名为
,因为这是该名称隐含的行为类型Try***