در این قسمت تیم کدگیت در ادامه آموزشهای قدم به قدم در جاوا به توضیح دستور Assert در جاوا می پردازد. ابتدا تعریفی از دستور Assert خواهیم داشت سپس زمان استفاده از این دستور را تشریح میکنیم. در آخر به پیاده سازی مثالی در این زمینه میپردازیم. این آموزش پیشنیاز خاصی ندارد.
دستور Assert در جاوا
قابلیت Assertion در برنامه نویسی به ما این اجازه را میدهد که صحیح بودن یا نبودن هر فرضیهای که در برنامه مورد نظر وجود دارد را بررسی نماییم. قابلیت Assertion با اجرای دستور assert در جاوا بدست میآید. به هنگام اجرای این قابلیت، صحیح بودن فرضیه ثابت خواهد شد در غیر این صورت یک پیام Error نمایش داده میشود. از این قابلیت بیشتر جهت آزمایش در حین پیشرفت یک برنامه استفاده میشود.
دستور Assert به همراه یک عبارت بولی به کار میرود و به دو طریق میتوان آن را نوشت.
روش اول:
Assert expression;
در این روش اگر expression اشتباه باشد برنامه ارور میدهد. به عنوان مثال دستور زیر یک عبارت اشتباه میباشد و برنامه ما ارور AssertionError میدهد.
assert false;
روش دوم:
Assert expression1 : expression2;
در این روش اگر expression1 اشتباه باشد برنامه ارور داده و دستور expression2 اجرا میشود(در بخش بعد از این روش مثالی پیاده سازی میکنیم).
فعال سازی قابلیت Assertion
به طور خودکار این قابلیت غیر فعال میباشد. برای فعال سازی ابتدا باید کد مربوطه را وارد نماییم. در eclipse در بخش Run Configuration به تب Arguments بروید. در قسمت VM Arguments کد –ea را وارد کنید.
مثال Assert در جاوا
یک متغیر بهنام age تعریف میکنیم و دستور assert را طوری مینویسیم که اگر این متغیر از 20 کوچکتر باشد ارور دهد. کد این برنامهبه صورت زیر است:
public static void main(String[] args) {
int age = 15;
assert age >= 20 : " assert Error";
System.out.println("value is "+age);
}
خروجی کد بالا به صورت زیر است:
Exception in thread “main” java.lang.AssertionError: assert Error
چند نکته را در کار با Assert یه یاد داشته باشید:
- از assert برای بررسی متغیر های ورودی یک متد public استفاده نکنید.
- سعی کنید Exception و assert را با هم اشتباه نگیرید.
وقت بخیر، گفتید اگه age بزرگتر باشه خطا بده ، کوچیکتره و خروجی رو خطا داده ، درستش کنید بقیه رو به اشتباه نندازه
سلام. ممنون بابت تذکرتون. بله age در صورت اینکه کوچکتر از 20 باشد برنامه خطا میدهد.
زمانی خطا میده که عبارت false بشه
یعنی age بزرگتر از 20 نباشه پس کد درست هست 🙂