The throws keyword

 

    Rather than explicitly catching an exception you can declare that your method throws the exception. This passes the repsonsibility to handle it to the method that invokes your method. This is done with the throws keyword. For example,

 public static void copy(InputStream in, OutputStream out) 
   throws IOException {

    byte[] buffer = new byte[256];
    while (true) {
      int bytesRead = in.read(buffer);
      if (bytesRead == -1) break;
      out.write(buffer, 0, bytesRead);
    }

  }
A single method may have the potential to throw more than one type of exception. In this case the exception clases are just separated by commas. For example,

public BigDecimal divide(BigDecimal val, int roundingMode) throws ArithmeticException, IllegalArgumentException

You can declare that your method throws runtime exceptions though you do not have to. The main use of this is as documentation for the programmer. It can also be useful in white box testing.

List | Previous | Next