Một thay thế sẽ được để lưu trữ các giá trị trả về trong một biến tạm thời:
public bool SomeFunction()
{
bool success = true;
try
{
//somecode
}
catch(Exception ex)
{
MessageBox.Show(ex.message);
success = false;
}
return success;
}
Nhưng cá nhân tôi, tôi thấy cách bạn đã viết nó (với một câu lệnh bắt tất cả) để dễ đọc hơn. Mặt khác, nếu bạn đang mong đợi một ngoại lệ cụ thể và bạn có thể có nhiều con đường để trở thành công hay không ...
try
{
DoTheImportantThing();
DoTheOtherThingThatMightFailButWeDontCare();
}
catch (DontCareAboutItException ex)
{
log.Info(ex);
}
catch (Exception ex)
{
log.Error(ex);
return false;
}
return true;
Sau đó, theo ý kiến của tôi bạn tốt nhất nên đẩy các báo cáo lợi nhuận càng gần kết thúc càng tốt.
Là một lưu ý phụ, tùy thuộc vào ứng dụng, hãy xem xét ghi lại các ngoại lệ mà bạn nắm bắt thay vì chỉ hiển thị chúng cho người dùng. Các ngoại lệ được ghi lại đáng tin cậy hơn nhiều so với những gì đã xảy ra.
Nguồn
2010-04-22 10:53:32
Xem thêm: http://stackoverflow.com/questions/2373560/return-statements-in-catch-blocks, http: // stackoverflow.com/questions/449099/is-it-bad-practice-to-return-from-within-a-try-catch-finally-block, http://stackoverflow.com/questions/1713388/in-the- try-catch-block-là-nó-xấu-to-return-bên trong-the-catch-mà-là-tốt-practi – outis
nó là tốt, tại sao không? – Andrey