java编译期的异常处理和自定义异常

---------------------------- java编译期的异常处理和自定义异常-----------------

两种方式

1.  自己处理

   /**

    * 自己处理的方法

    * 编译期的异常处理不是抛出就是自己处理

    */

   publicstaticvoid divide(){

  

      try {

        ServerSocket ss = newServerSocket(8888);

      } catch(IOException e) {

        System.out.println("端口被占用");

        e.printStackTrace();

      }

      }

 

2.向上抛出

   /**

    * 向上抛出的方法

    * 编译期的异常处理不是抛出就是自己处理

    * @throwsIOException

    */

   publicstaticvoid divide() throwsIOException {

  

        ServerSocket ss = newServerSocket(8888);

  

      }

 

一般处理方式

编译期的异常自行处理即可

运行时异常要向上抛出

 

--------------自定义异常------------------

我们自己定义的异常都是运行期的异常.

 

自定义异常的步骤

1.创建一个异常类继承RuntimeException

/**

 * 自定义的异常直接来继承父类的构造器就可以了

 * @author Administrator

 *

 */

publicclass StockExceptionextends RuntimeException {

 

   public StockException() {

      super();

   }

 

   publicStockException(String message, Throwable cause, booleanenableSuppression, booleanwritableStackTrace) {

      super(message, cause, enableSuppression, writableStackTrace);

   }

 

   publicStockException(String message, Throwable cause) {

      super(message, cause);

   }

 

   publicStockException(String message) {

      super(message);

   }

 

   publicStockException(Throwable cause) {

      super(cause);

   }

 

}

2.继承RuntimeException的构造器;

publicclass test11 {

   publicstaticvoidmain(String[] args) {

             buyItem();

   }

  

   /**

    * 自己处理的方法

    * 编译期的异常处理不是抛出就是自己处理

    */

   publicstaticvoid buyItem(){

         intstock = 0;

         if (stock == 0) {

           //我们主动抛出异常

           thrownewStockException("库存不足");

         }

      }

}

运行结果

 

你可能感兴趣的:(JAVASE)