Saya punya pertanyaan singkat. Saya tidak yakin apa cara terbaik untuk melakukan ini. Haruskah saya membuang pengecualian di luar jangkauan untuk DateTime? Karena saya ingin membuat kode saya sebagai bukti idiot mungkin.

Di bagian bawah adalah kode saya. Apakah ini cara yang baik untuk melempar pengecualian? Ketika saya tidak membuang pengecualian di luar jangkauan, pengecualian argumen terjadi. Haruskah saya melempar pengecualian argumen? Apakah ini parameter yang benar untuk dimasukkan ke dalam pengecualian saya. Apa cara terbaik untuk melakukan ini? Apakah ini cara yang baik untuk melempar pengecualian secara umum?

Terima kasih

private DateTime date;
public SimpleDate(int day, int month, int year)
{
    if (day > 31 || day < 0)
    {
        throw new ArgumentOutOfRangeException("day");
    }
    if (month > 12 || month < 0)
    {
        throw new ArgumentOutOfRangeException("month");
    }
    if (year > 2100 || year < 1900)
    {
        throw new ArgumentOutOfRangeException("year");
    }
    date = new DateTime(year, month, day);
}
1
Mathijs F 14 Maret 2017, 20:16

2 jawaban

Jawaban Terbaik

Saya tidak melihat ada yang salah dengan melemparkan pengecualian, umumnya merupakan ide yang baik untuk memvalidasi data Anda yang sedang dimasukkan.

Satu hal yang saya perhatikan, seharusnya tidak

if (month > 12 || month < 0) menjadi if (month > 12 || month <= 0). 0 tidak akan menjadi bulan yang valid. :)

0
ryanjb546 14 Maret 2017, 17:26