Repository navigation
Conversation
| .then(() => { | ||
| // successful promise handlers, one or more | ||
| }); // without .catch at the end! | ||
| // tratadores de promessa bem-sucedidos, um ou mais |
There was a problem hiding this comment.
Mudança de sentido: successful promise handlers aqui quer dizer tratadores de sucesso (os passados ao .then), não tratadores que "tiveram sucesso". "tratadores de promessa bem-sucedidos" muda o sentido e destoa do termo usado no resto do artigo ("tratador .then de sucesso", linhas 103/117/120).
| // tratadores de promessa bem-sucedidos, um ou mais | |
| // tratadores de sucesso da promessa, um ou mais |
| ## try..catch implícito | ||
|
|
||
| The code of a promise executor and promise handlers has an "invisible `try..catch`" around it. If an exception happens, it gets caught and treated as a rejection. | ||
| O código de um executor de promessa e dos tratadores de promessa tem um "try..catch invisível" ao redor dele. Se uma exceção acontece, ela é capturada e tratada como uma rejeição. |
There was a problem hiding this comment.
Formatação de código perdida: o original é "invisible `try..catch`", com try..catch como código inline. A tradução removeu as crases, então try..catch aparece como texto comum. O mesmo acontece na linha 67 e em 01-error-async/solution.md linha 11. O resto do artigo (linhas 99, 101, 171) mantém try..catch como código.
| O código de um executor de promessa e dos tratadores de promessa tem um "try..catch invisível" ao redor dele. Se uma exceção acontece, ela é capturada e tratada como uma rejeição. | |
| O código de um executor de promessa e dos tratadores de promessa tem um "`try..catch` invisível" ao redor dele. Se uma exceção acontece, ela é capturada e tratada como uma rejeição. |
| ``` | ||
|
|
||
| The "invisible `try..catch`" around the executor automatically catches the error and turns it into rejected promise. | ||
| O "try..catch invisível" ao redor do executor captura o erro automaticamente e o transforma em uma promessa rejeitada. |
There was a problem hiding this comment.
Mesmo problema da linha 45: as crases ao redor de try..catch foram removidas.
| O "try..catch invisível" ao redor do executor captura o erro automaticamente e o transforma em uma promessa rejeitada. | |
| O "`try..catch` invisível" ao redor do executor captura o erro automaticamente e o transforma em uma promessa rejeitada. |
| ``` | ||
|
|
||
| As said in the chapter, there's an "implicit `try..catch`" around the function code. So all synchronous errors are handled. | ||
| Como dito no capítulo, existe um "try..catch implícito" ao redor do código da função. Então todos os erros síncronos são tratados. |
There was a problem hiding this comment.
O original é "implicit `try..catch`"; as crases ao redor de try..catch foram removidas na tradução.
| Como dito no capítulo, existe um "try..catch implícito" ao redor do código da função. Então todos os erros síncronos são tratados. | |
| Como dito no capítulo, existe um "`try..catch` implícito" ao redor do código da função. Então todos os erros síncronos são tratados. |
| - O `.then` também captura erros da mesma forma, se receber o segundo argumento (que é o tratador de erro). | ||
| - Devemos colocar o `.catch` exatamente nos lugares onde queremos tratar erros e sabemos como tratá-los. O tratador deve analisar os erros (classes de erro personalizadas ajudam) e relançar os desconhecidos (talvez sejam erros de programação). | ||
| - Não tem problema não usar `.catch` de jeito nenhum, se não houver como se recuperar de um erro. | ||
| - Em qualquer caso, devemos ter o tratador do evento `unhandledrejection` (para navegadores, e equivalentes para outros ambientes) para rastrear erros não tratados e informar o usuário (e provavelmente nosso servidor) sobre eles, para que nosso app nunca "simplesmente morra". |
There was a problem hiding this comment.
CLAUDE.md: "avoid using foreign words: Words like timer, loop, inline should be avoided." app é um anglicismo; "aplicação" funciona aqui.
| - Em qualquer caso, devemos ter o tratador do evento `unhandledrejection` (para navegadores, e equivalentes para outros ambientes) para rastrear erros não tratados e informar o usuário (e provavelmente nosso servidor) sobre eles, para que nosso app nunca "simplesmente morra". | |
| - Em qualquer caso, devemos ter o tratador do evento `unhandledrejection` (para navegadores, e equivalentes para outros ambientes) para rastrear erros não tratados e informar o usuário (e provavelmente nosso servidor) sobre eles, para que nossa aplicação nunca "simplesmente morra". |
| Em um `try..catch` normal, podemos analisar o erro e talvez relançá-lo se não puder ser tratado. A mesma coisa é possível com promessas. | ||
|
|
||
| If we `throw` inside `.catch`, then the control goes to the next closest error handler. And if we handle the error and finish normally, then it continues to the next closest successful `.then` handler. | ||
| Se dermos um `throw` dentro do `.catch`, o controle vai para o próximo tratador de erro mais próximo. E se tratarmos o erro e terminarmos normalmente, então ele continua para o próximo tratador `.then` de sucesso mais próximo. |
There was a problem hiding this comment.
Redundância: "o próximo tratador de erro mais próximo" repete a ideia (tradução literal de "next closest"). Basta "o tratador de erro mais próximo", como na linha 69.
| Se dermos um `throw` dentro do `.catch`, o controle vai para o próximo tratador de erro mais próximo. E se tratarmos o erro e terminarmos normalmente, então ele continua para o próximo tratador `.then` de sucesso mais próximo. | |
| Se dermos um `throw` dentro do `.catch`, o controle vai para o tratador de erro mais próximo. E se tratarmos o erro e terminarmos normalmente, então ele continua para o tratador `.then` de sucesso mais próximo. |
|
|
||
| if (error instanceof URIError) { | ||
| // handle it | ||
| // trata isso |
There was a problem hiding this comment.
Nit: // handle it é imperativo (um marcador de "faça o tratamento aqui"). "trata isso" fica no indicativo e soa estranho; algo como "trate o erro aqui" fica mais natural.
| // trata isso | |
| // trate o erro aqui |
|
Obrigado, @gabifs! Apliquei tudo: corrigi o sentido de "successful promise handlers" (tratadores de sucesso, não tratadores bem-sucedidos), devolvi as crases em |
Tradução do artigo "Error handling with promises" para o português, incluindo o exercício.
Conforme comentado na #1.