回答
公共无效功能() {
try
{
//some code here
}
catch
{
return;
}
}
时返回;被击中时,执行流程跳出该函数。这只能在void方法上完成。
编辑:你这样做,如果你不想执行其余的功能。例如,如果您正在执行文件IO并发生读取错误,则您不想执行处理该文件中的数据的代码,因为您没有它。
有些时候,你不关心抛出的异常,只是在尝试操作失败。一个例子是在功能的TryParse这pseduo代码如下所示:
try
{
//attempt conversion
return true;
}
catch
{
return false;
}
这将是有用的,如果你知道函数的返回值应该在catch块的东西。
例子:
public bool IsDatabaseAvailable() {
try {
// connect
return true;
}
catch (Exception) {
return false;
}
finally {
// clean up
}
}
你可能想捕获错误,记录它,并说返回值为false指示,如果函数成功。在其他情况下,您可能想要返回一些在try块中计算的数据。
.Net Framework中的某些方法在没有良好格式时会引发异常。
一个很好的例子是int.TryParse(object value)
如果你的价值是“10秒”,它会特罗异常。在这种情况下,我们知道这是因为转换无效。
所以
try
{
int.TryParse(value);
return true;
}
catch { return false; }
可能是一个函数,它告诉我们,如果该字符串是一个有效的整数。
如果你在这个问题上使用这种形式,请不要做catch(Exception ex),因为这样做会迫使.Net将对象内部的错误串行化,这很慢。
另外重要的是要记住,即使你使用try catch块内的返回值,它仍然会执行finally块。
所以,如果你的cleaup代码是在终于内部不要担心框架将确保调用它。
我的2美分。 N.
我认为你的意思是'int.Parse',它引发无效格式;'int.TryParse'永远不会抛出,返回' bool'指示解析成功,并且接受'out int'的第二个参数。仅供参考。 – 2015-08-18 18:32:25
任何情况下,如果尝试失败,您有其他选择。 一个例子可以被检查,如果file
可用于一些operation
bool IsComplete = false;
try
{
// FileStream currentWriteableFile =
File.OpenWrite(sFileLocation);
}
catch(Exception)
{
return false;
}
- 1. catch块中的返回语句
- 2. catch语句之前的返回语句
- 3. 多个IF语句在catch块回滚
- 4. 在catch块中使用continue语句
- 5. 如何返回try/catch语句中的字符串?
- 6. 返回语句在catch中的行为,最后是
- 7. 返回语句在catch中的行为,最后
- 8. 从catch块中的函数返回
- 9. 返回语句vs不返回语句?
- 10. 多个语句在try/catch块 - Java的
- 11. c# - 将catch语句块中的2条语句合并成一个语句
- 12. 在catch块中返回什么
- 13. Joomla 1.5模块输出返回语句
- 14. 如何从Promise的catch/then块返回
- 15. C语言中的try-catch语句C
- 16. C#返回语句Try/Catch Not Stopping程序
- 17. 在try/catch块之后,一个方法是否返回一个对象需要返回null语句?
- 18. 返回语句中的语法错误
- 19. 语句返回undefined
- 20. 从try/catch块内部返回变量
- 21. 使用try catch语句打印语句
- 22. 为什么一个方法需要catch语句中的返回语句,即使catch语句重新抛出异常
- 23. Catch的返回值
- 24. 返回语句与打印语句?
- 25. sqlite3_step(语句)== SQLITE_DONE语句不返回是
- 26. Linq的语句返回行
- 27. 函数返回值无返回语句
- 28. 在try块java中返回语句。什么会被方法返回,为什么?
- 29. 返回语句中的-1的值
- 30. 如何解决Catch语句中的SQLException?
我其实刚刚看到了正在使用的return关键字。 – dotnetdev 2010-03-03 17:45:36
@dotnetdev:而不是什么?我正在使用return关键字。 – recursive 2010-03-03 17:48:36
对不起,我的意思是“意思”(我其实只是意味着返回关键字...使用“)。 – dotnetdev 2010-03-03 17:53:19