2015-02-10 3 views
-1

Например, в этом методе: protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,java.io.IOException {}Почему бы нам не использовать иногда новое исключение?

throw new ServletException, java.io.IOException; не используется в определении метода. почему это ? может кто-нибудь, пожалуйста, скажите мне, почему? Я новичок в java.

В приведенном ниже коде используется бросок кода и почему он не используется в описанном выше методе, который вызывает исключение.

class SomeClassName { 
     void show() throws Exception 
      { 
      throw new Exception(); 
      } 
     } 
+3

Бросок и броски - это две разные вещи. Google их – Eran

+0

Это явно не бросает 'ServletException', но вызывает другие методы. – alfasin

+0

некоторые чтения: http://stackoverflow.com/questions/4392446/when-to-use-throws-in-a-java-method-declaration –

ответ

0

throw new Exception «создает» исключение, в то время как throws Exception просто «кидает» любые встречаются исключения из метода вызывающего абонента.

2

throws Exception и throw new Exception(); делать совершенно разные вещи.

throws Exception является частью подписи метода и указывает, что «этому методу разрешено выкидывать Exception s».

throw new Exception(); - это утверждение, которое фактически выдает исключение.

Это не действует (так как throw не может быть частью сигнатуры метода):

public void test() throw new Exception(); { 
} 

и ни это (поскольку throws Exception не является утверждением):

public void test() { 
    throws Exception; 
} 
1

Буквально, 'throws' сам означает, что он должен быть связан с поведением. 'throw' означает, что он должен быть связан с действием.

Аналогичным образом, throws, поскольку поведение связано с подписью method.

public void test() throws CutomException{ 
    //do whatever 
    throw new CustomException 
} 

Вышеупомянутый method имеет признак метательных CustomException (throws), если срабатывает в пределах method тела, чтобы сделать то же самое (throw).

Смежные вопросы