@@ -6,21 +6,21 @@ causar un panic en la práctica: tomando una acción que hace que nuestro códig
6
6
entre en pánico (como acceder a una matriz más allá del final) o llamando
7
7
explícitamente a la macro ` panic! ` . En ambos casos, causamos un pánico en
8
8
nuestro programa. De forma predeterminada, estos pánicos imprimirán un mensaje
9
- de error, desenrollarán , limpiarán la pila y se cerrarán. A través de una
9
+ de error, se desharán , limpiarán la pila y se cerrarán. A través de una
10
10
variable de entorno, también puede hacer que Rust muestre la pila de llamadas
11
11
cuando ocurre un pánico para facilitar el seguimiento de la fuente del panic.
12
12
13
- > ### Desenrollar el Stack o Abortar en respuesta a un Panic
13
+ > ### Deshacer la pila o abortar en respuesta a un pánico
14
14
>
15
- > Por defecto, cuando ocurre un panic, el programa comienza a _ desenrollar _ ,
15
+ > Por defecto, cuando ocurre un panic, el programa comienza a _ deshacerse _ ,
16
16
> lo que significa que Rust retrocede por la pila y limpia los datos de cada
17
17
> función que encuentra. Sin embargo, este retroceso y limpieza es mucho
18
18
> trabajo. Rust, por lo tanto, le permite elegir la alternativa de _ abortar_
19
19
> inmediatamente, lo que termina el programa sin limpiar.
20
20
>
21
21
> La memoria que el programa estaba usando deberá ser limpiada
22
22
> por el sistema operativo. Si en su proyecto necesita hacer que el binario
23
- > resultante sea lo más pequeño posible, puede cambiar de desenrollar a abortar
23
+ > resultante sea lo más pequeño posible, puede cambiar de deshacer el programa a abortarlo
24
24
> al producir un pánico agregando ` panic = 'abort' ` a las secciones
25
25
> ` [profile] ` apropiadas en su archivo _ Cargo.toml_ . Por ejemplo, si desea
26
26
> abortar en caso de pánico en el modo de lanzamiento, agregue esto:
@@ -54,16 +54,16 @@ línea, vemos la llamada a la macro `panic!`. En otros casos, la llamada a
54
54
` panic! ` podría estar en el código que nuestro código llama, y el nombre de
55
55
archivo y el número de línea informados por el mensaje de error serán el
56
56
código de otra persona donde se llama a la macro ` panic! ` , no la línea de
57
- nuestro código que finalmente condujo a la llamada a ` panic! ` . Podemos usar la
58
- traza de las funciones de las que provino la llamada a ` panic! ` para
57
+ nuestro código que finalmente condujo a la llamada a ` panic! ` . Podemos usar el
58
+ backtrace de las funciones de las que provino la llamada a ` panic! ` para
59
59
determinar la parte de nuestro código que está causando el problema.
60
- Discutiremos las trazas en más detalle a continuación.
60
+ Discutiremos el backtrace en más detalle a continuación.
61
61
62
- ### Usando un Backtrace de ` panic! `
62
+ ### Usando el backtrace de ` panic! `
63
63
64
64
Veamos otro ejemplo de cómo es cuando una llamada a ` panic! ` proviene de una
65
65
biblioteca debido a un error en nuestro código en lugar de que nuestro código
66
- llame directamente a la macro. La lista 9-1 tiene algún código que intenta
66
+ llame directamente a la macro. El listado 9-1 tiene algún código que intenta
67
67
acceder a un índice en un vector más allá del rango de índices válidos.
68
68
69
69
<span class =" filename " >Filename: src/main.rs</span >
@@ -72,7 +72,7 @@ acceder a un índice en un vector más allá del rango de índices válidos.
72
72
{{#rustdoc_include ../listings/ch09-error-handling/listing-09-01/src/main.rs}}
73
73
```
74
74
75
- <span class =" caption " >Listing 9-1: Intentando acceder a un elemento más allá del
75
+ <span class =" caption " >Listado 9-1: Intentando acceder a un elemento más allá del
76
76
fin de un vector, que provocará una llamada a ` panic! ` </span >
77
77
78
78
Aquí, estamos intentando acceder al elemento 100 de nuestro vector (que está
@@ -99,17 +99,17 @@ continuar. Intentémoslo y veamos:
99
99
100
100
Este error apunta a la línea 4 de nuestro ` main.rs ` donde intentamos acceder al
101
101
índice 99. La siguiente línea de nota nos dice que podemos establecer la
102
- variable de entorno ` RUST_BACKTRACE ` para obtener una traza de exactamente lo
103
- que sucedió para causar el error. Una _ traza _ es una lista de todas las
104
- funciones que se han llamado para llegar a este punto. Las trazas en Rust
105
- funcionan como lo hacen en otros lenguajes: la clave para leer la traza es
102
+ variable de entorno ` RUST_BACKTRACE ` para obtener el backtrace de exactamente lo
103
+ que sucedió para causar el error. El _ Backtrace _ es una lista de todas las
104
+ funciones que se han llamado para llegar a este punto. El backtrace en Rust
105
+ funciona como lo hacen en otros lenguajes: la clave para leer el backtrace es
106
106
comenzar desde la parte superior y leer hasta que vea archivos que escribió.
107
107
Ese es el lugar donde se originó el problema. Las líneas por encima de ese
108
108
punto son el código que su código ha llamado; las líneas a continuación son el
109
109
código que llamó a su código. Estas líneas antes y después pueden incluir
110
- código de Rust core, código de biblioteca estándar o cajas que está usando.
111
- Intentemos obtener una traza estableciendo la variable de entorno
112
- ` RUST_BACKTRACE ` a cualquier valor excepto 0. La lista 9-2 muestra una salida
110
+ código de Rust core, código de biblioteca estándar o crates que estés usando.
111
+ Intentemos obtener el backtrace estableciendo la variable de entorno
112
+ ` RUST_BACKTRACE ` a cualquier valor excepto 0. El listado 9-2 muestra una salida
113
113
similar a la que verás.
114
114
115
115
<!-- manual-regeneration
@@ -142,21 +142,21 @@ stack backtrace:
142
142
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
143
143
```
144
144
145
- <span class =" caption " >Listing 9-2: El backtrace generado por una llamada a
145
+ <span class =" caption " >Listado 9-2: El backtrace generado por una llamada a
146
146
` panic! ` se muestra cuando la variable de entorno ` RUST_BACKTRACE ` está
147
147
configurada</span >
148
148
149
149
¡Eso es mucho resultado! La salida exacta que vea puede ser diferente según su
150
- sistema operativo y la versión de Rust. Para obtener trazas con esta
150
+ sistema operativo y la versión de Rust. Para obtener el backtrace con esta
151
151
información, deben estar habilitados los símbolos de depuración. Los símbolos
152
152
de depuración están habilitados de forma predeterminada cuando se usa `cargo
153
153
build` o ` cargo run` sin el indicador ` --release`, como tenemos aquí.
154
154
155
- En la salida en la Lista 9-2, la línea 6 de la traza apunta a la línea en
155
+ En la salida en el listado 9-2, la línea 6 del backtrace apunta a la línea en
156
156
nuestro proyecto que está causando el problema: la línea 4 de ` src/main.rs ` . Si
157
157
no queremos que nuestro programa entre en pánico, debemos comenzar nuestra
158
158
investigación en la ubicación señalada por la primera línea que menciona un
159
- archivo que escribimos. En la Lista 9-1, donde escribimos deliberadamente un
159
+ archivo que escribimos. En la listado 9-1, donde escribimos deliberadamente un
160
160
código que entraría en pánico, la forma de solucionar el pánico es no solicitar
161
161
un elemento más allá del rango de los índices del vector. Cuando su código
162
162
entra en pánico en el futuro, deberá averiguar qué acción está tomando el
0 commit comments