miércoles, 3 de diciembre de 2014

Manejo de Excepciones REST, SOAP y JAVA



Excepciones

Un mecanismo de excepciones debe cumplir una serie de requisitos

    • ser fácil de entender y de usar
    • separación de código normal y código de tratamiento de excepciones
    • eficiencia 
    • tratamiento uniforme de excepciones detectadas por el entorno de ejecución y por el software de aplicación
    • acciones de recuperación programables 






A continuación veremos un ejemplo del manejo de Excepciones para 2 arquitecturas vistas en clase RESTful, SOAP y el lenguaje Java; esto con el fin de compararlas.




1.- RESTful Service:
@Path("service")
@Consumes({"application/json"})
@Produces({"application/json"})
public class MyResource {
  @GET
  @Path("/{id}")
  public Response getPage(@PathParam("id") long id){
    Object test=null;
    try {
         test = ...
      //call business logic service method here which makes a call to database and populates test instance
    } catch (Throwable e) {
      throw new MyAppRuntimeException("custom error message string");
    }

    if(test != null){
        return Response.ok(test).build();
    }else{
        return Response.status(Status.NOT_FOUND).build();
    }

  }
}

2.SOAP



<webServices>
    <soapExtensionTypes>
        <add 
            group="0" 
            priority="1" 
            type="ExceptionHandlingSoapExtension.
                ExceptionManagementSoapExtension,
                ExceptionHandlingSoapExtension" 
        />
    </soapExtensionTypes>
</webServices>

3. Java

// File Name : ExcepTest.java
import java.io.*;
public class ExcepTest{

   public static void main(String args[]){
      try{
         int a[] = new int[2];
         System.out.println("Access element three :" + a[3]);
      }catch(ArrayIndexOutOfBoundsException e){
         System.out.println("Exception thrown  :" + e);
      }
      System.out.println("Out of the block");
   }
}


Concluimos pues luego de revisar los tres ejemplos que los métodos son similares. Si bien es cierto, varían en cuanto a forma en los tres casos se cumplen con las principales características de un control de excepciones eficiente.


No hay comentarios:

Publicar un comentario