回答
公共無效功能() {
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