Tôi có thuộc tính chuỗi có yêu cầu độ dài tối đa vì dữ liệu được liên kết với cơ sở dữ liệu. Tôi nên ném ngoại lệ nào nếu người gọi cố gắng đặt chuỗi vượt quá độ dài này?Ngoại lệ gì để ném từ một công ty thiết lập tài sản?
Ví dụ, đây C# mã:
public string MyProperty
{
get
{
return _MyBackingField;
}
set
{
if (value.Length > 100)
throw new FooException("MyProperty has a maximum length of 100.");
_MyBackingField = value;
}
}
tôi coi ArgumentException
, nhưng nó chỉ có vẻ không đúng. Về mặt kỹ thuật, nó là một chức năng - MyProperty_set(string value)
- vì vậy một trường hợp cho ArgumentException
có thể được thực hiện, nhưng nó không được gọi là chức năng cho mắt của người tiêu dùng - nó ở bên phải của một toán tử gán.
Câu hỏi này có lẽ cũng có thể được mở rộng để bao gồm tất cả các loại xác thực dữ liệu được thực hiện trong trình cài đặt thuộc tính, nhưng tôi đặc biệt quan tâm đến trường hợp trên.
Btw, Mono ném một ArgumentException trong trường hợp này ... –
"ArgumentOutOfRangeException - Trường hợp ngoại lệ được ném khi giá trị của một cuộc tranh cãi nằm ngoài phạm vi cho phép của các giá trị theo quy định của phương thức được gọi " .... imo, Mono nên sửa mã của chúng. –