بله گفتم که ممکنه حتی اسمش رو نشه باگ گذاشت، ولی میتونیم اسمش رو یک آپشن بذاریم که اگر داشته باشه بهتره، نداشته باشه هم چندان مسئله ای نیست. مثلا سایت time.ir رو چک کنید و یک تاریخ خارج از رنج بدید (مثالی که بالاتر زدم) و خطا میده. زیاد با قوانین روزهای ماه آشنا نیستم، ولی در مورد این یه مورد کافیه تشخیص داده بشه سال مورد نظر کبیسه هست یا نه. خب بگذریم نمیخوام گیر بنی اسرائیلی بدم
با این عبارت مخالفم. هیچ جا چنین چیزی گفته نشده.در ضمن این وظیفه برنامه نویسه که ورودی هارو کنترل کنه نه کسی که کلاس یا کتابخانه رو طراحی می کنه
هر چند نمیتونیم انتظار داشته باشیم یک کتابخانه بی نقص باشه (در تمام کارهای مهندسی نقص و باگ وجود داره) ولی اتفاقا خیلی از کتابخانه ها ورودی توابعشون رو چک میکنند و Exception های متناسب رو ایجاد می کنند. مثلا فرض کنید کتابخانه های استاندارد جاوا که امکان خواندن از فایل رو به کاربر میده. ممکنه کاربر اسم فایلی رو وارد کنه که وجود نداشته باشه و FileNotFoundException رو میده. یا مثلا برای تبدیل یک رشته به یک عدد در صورتی که رشته تمام ویژگی های لازم رو نداشته باشه Exception مربوطه رو میده. و انواع مثال های دیگه از کتابخانه های مختلف.
در کل اگر بتونیم در کدنویسی یک تابع، اکثر حالات غیرمجاز که احتمال ورودش هست رو چک کنیم، اون یک تابع محکم (Robust) هست.
به هر حال به نظر من همه چیزش درسته. اینایی که گفتم هم برای بررسی بیشتر بود.