Khi thiết kế thư viện lớp học, Khi bạn tạo phương thức, khi nào bạn quyết định ném ngoại lệ hoặc trả về boolean.Khi trả lại bool, hãy ném ngoại lệ và ngoại lệ nào để ném
Ví dụ:
public class MathHelper
{
public int Divide(int x, int y)
{
if(y == 0)
{
throw new DivideByZeroException("Cannot Divide by Zero");
}
return x/y;
}
}
Đây là trường hợp đơn giản, nhưng sau đó bạn bắt đầu tạo các phương pháp phức tạp hơn.
Bạn thích cái nào hơn?
public void Parse(TextReader reader, string delimeter)
{
if(reader == null)
{
throw new ArgumentNullException("The reader cannot be null");
}
if(String.IsNullOrEmpty(delimeter))
{
throw new ArgumentNullException("The delimeter cannot be null");
}
}
public bool Parse(TextReader reader, string delimeter)
{
if(reader == null)
{
logger.Error("Parse failed with null reader");
return false;
}
if(String.IsNullOrEmpty(delimeter))
{
logger.Error("Parse failed with null delimeter");
return false;
}
}
Tôi thực sự thích câu trả lời này, bởi vì nếu bạn sử dụng nó chỉ dành cho thư viện nội bộ của bạn, ném một ngoại lệ là tốn kém. –
liên kết đã cho cho tài liệu bị hỏng. – chammu
@chammu Tôi thường có thể truy cập vào nó. – KnorxThieus