کلمه کلیدی throw درون بدنه متد کاربرد دارد، و هنگامی که میخواهیم یک رخداد غیر عادی ( که خارج از روند کلی برنامه است ) را ایجاد یا به عبارتی اطلاع رسانی کنیم از آن استفاده می کنیم.
if(someErrorCondition){
throw new Exception();
}
اگر این قطعه کد درون بدنه try نوشته شود هنگام اجرای throw کنترل به بدنه catch منتقل می شود.
اما اگر بخواهیم خطاهای رخ داده به متد فراخوانی کننده ارجاع داده شود از کلمه کلیدی throws برای متد استفاده می نماییم تا تابع فراخوانی کننده را مجبور به handle کردن exception کنیم.
public void test() throws Exception{
if(someErrorCondition){
throw new Exception();
}
}