summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
author[Ernesto] <[ernesto.p@itmexicali.edu.mx]>2018-09-19 13:10:30 -0700
committer[Ernesto] <[ernesto.p@itmexicali.edu.mx]>2018-09-19 13:10:30 -0700
commitd875cbabe402c3355d5bd49801adcc4f99edf9a8 (patch)
tree65c7c533d38067481b1176bc4cda1f89f6840d05
parentb765369b258bb92c2caed28d0eae82e923f2a386 (diff)
added part 3 Exceptions
-rw-r--r--es-es/erlang-es.html.markdown23
1 files changed, 23 insertions, 0 deletions
diff --git a/es-es/erlang-es.html.markdown b/es-es/erlang-es.html.markdown
index 7ca9c9b0..11c83562 100644
--- a/es-es/erlang-es.html.markdown
+++ b/es-es/erlang-es.html.markdown
@@ -205,3 +205,26 @@ expresiones **`if`**.
end.**
**Advertencia:** al menos uno de los guardias en la expresión **`if`** debe evaluar a **`true`**; de lo contrario, se generará una excepción.
+
+## 3. Excepciones.
+
+
+- El sistema genera excepciones cuando se encuentran errores internos o explícitamente en el código llamando **`throw (Exception)`**, **`exit (Exception)`**, o **`erlang: error (Exception)`**.
+>**generate_exception (1) -> a;
+generate_exception (2) -> throw (a);
+generate_exception (3) -> exit (a);
+generate_exception (4) -> {'EXIT', a};
+generate_exception (5) -> erlang: error (a).**
+
+- Erlang tiene dos métodos para atrapar una excepción. Una es encerrar la llamada a de la función que genera la excepción dentro de una expresión **`try ... catch`**.
+>**receptor (N) ->
+ prueba generar_excepción (N) de
+ Val -> {N, normal, Val}
+ captura
+ throw: X -> {N, atrapado, arrojado, X};
+ exit: X -> {N, atrapado, salido, X};
+ error: X -> {N, atrapado, error, X}
+ end.**
+
+- El otro es encerrar la llamada en una expresión **`catch`**. Cuando atrapas un de excepción, se convierte en una tupla que describe el error.
+>**catcher (N) -> catch generate_exception (N).**