##
CREAR EXCEPCIONES PROPIAS

También podemos lanzar nuestras propias excepciones, extendiendo la clase System.exception. Por ejemplo, consideremos un programa cliente/servidor. El código cliente se intenta conectar al servidor, y durante 5 segundos se espera a que conteste el servidor. Si el servidor no responde, el servidor lanzaría la excepción de time-out:

    class ServerTimeOutException extends Exception {}

    public void conectame( String nombreServidor ) throws Exception {
        int exito;
        int puerto = 80;

        exito = open( nombreServidor,puerto );
        if( exito == -1 )
            throw ServerTimeOutException;
        }

Si se quieren capturar las propias excepciones, se deberá utilizar la sentencia try:

    public void encuentraServidor() {
       ...
       try {
            conectame( servidorDefecto );
            catch( ServerTimeOutException e ) {
                g.drawString(
                    "Time-out del Servidor, intentando alternativa",
                    5,5 );
                conectame( servidorAlterno );
                }
        ...
        }

Cualquier método que lance una excepción también debe capturarla, o declararla como parte de la interface del método. Cabe preguntarse entonces, el porqué de lanzar una excepción si hay que capturarla en el mismo método. La respuesta es que las excepciones no simplifican el trabajo del control de errores. Tienen la ventaja de que se puede tener muy localizado el control de errores y no tenemos que controlar millones de valores de retorno, pero no van más allá.

|  | ##### [Anterior] [Indice] [Siguiente]