Giả sử chúng ta có phương thức chấp nhận giá trị của một liệt kê. Sau khi phương pháp này kiểm tra rằng giá trị là hợp lệ, nó switch
es trên các giá trị có thể. Vì vậy, câu hỏi đặt ra là, phương pháp ưu tiên xử lý các giá trị không mong muốn là gì sau khi phạm vi giá trị đã được xác thực?Phương pháp ưu tiên để xử lý các giá trị enum bất ngờ là gì?
Ví dụ:
enum Mood { Happy, Sad }
public void PrintMood(Mood mood)
{
if (!Enum.IsDefined(typeof(Mood), mood))
{
throw new ArgumentOutOfRangeException("mood");
}
switch (mood)
{
case Happy: Console.WriteLine("I am happy"); break;
case Sad: Console.WriteLine("I am sad"); break;
default: // what should we do here?
}
phương pháp ưu tiên xử lý các trường hợp default
là gì?
- Leave a comment như
// can never happen
Debug.Fail()
(hoặcDebug.Assert(false)
)throw new NotImplementedException()
(hoặc bất kỳ ngoại lệ khác)- Một số cách khác mà tôi đã không nghĩ đến
Tôi đăng một câu trả lời với ý kiến của riêng tôi. Nếu bạn có một ý kiến khác, hoặc một trường hợp khác có hỗ trợ ý kiến này, hãy chia sẻ kiến thức của bạn. Mục đích của câu hỏi là thu thập ý tưởng về chủ đề, để giúp người khác (và tôi) đối mặt với tình huống này. –
tại sao được đánh dấu là java? – OscarRyz
@ OSC: Nó phải là một câu hỏi độc lập về ngôn ngữ IMHO. Mọi người có thể tìm thấy câu trả lời cho cả hai ngôn ngữ ở đây. –