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