An Interest In:
Web News this Week
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
- March 15, 2024
- March 14, 2024
- March 13, 2024
Tratamento de Exceo com erros customizados em Swift
Utilizar erros customizados pode deixar seu cdigo mais compreensvel e organizado, pois adiciona uma "descrio" para determinadas situaes que podem ocorrer. No artigo de hoje vamos ver como criar e tratar erros customizados na linguagem Swift.
Sumrio
Criao
Primeiro, precisamos pensar em um contexto para criar nossos erros. Vamos supor que existe um servio que consome uma API que fornece dados sobre filmes, e iremos tratar os possveis erros. Os erros mais comuns so:
- Recurso no encontrado(404)
- Proibido(403)
- Erro interno(500)
- Servio Indisponvel(503)
Os nmeros associados aos erros so conhecidos como "Cdigo de Status HTTP"(HTTP Status Code).
No trecho de cdigo abaixo, iremos criar nossos erros customizados:
enum APIError: Error { case NotFound // Recurso no encontrado case Forbidden // Proibido case InternalError // Erro interno case ServiceUnavailable // Indisponvel}
Usamos uma estrutura do tipo enum
para definir o conjunto de erros que temos. Para dar continuidade, iremos supor que nosso servio dispara excees com os tipos definidos acima quando os respectivos cdigos de status HTTP so recebidos.
Tratamento de Exceo
Agora que j temos um conjunto definido de erros, vamos ver como tratar nossas excees. A linguagem Swift usa, para tratamento de excees, uma estrutura conhecida como do-try-catch
, que escrita da seguinte forma:
do { try execute()} catch(let exception){ // Tratamento da exceo}
Adequando o cdigo acima para nosso cenrio do servio de filmes, e supondo que o servio j est implementado, teramos o seguinte:
do { // Tenta obter os dados do filme de id 5201 try MovieService.getById(5201)} catch(let exception){ // Trata os erros}
Podemos ir um pouco alm do que j vimos. A estrutura do-try-catch permite que tratemos diferentes tipos de excees, como se fosse um switch-case, da seguinte forma:
do { // Tenta obter os dados do filme de id 5201 try MovieService.getById(5201)} catch APIError.NotFound { // Trata o erro de "Recurso no encontrado} catch APIError.Forbidden { // Trata o erro de "Proibido"} catch APIError.InternalError { // Trata o erro de "Erro interno} catch APIError.ServiceUnavailable { // Trata o erro de "Servio Indisponvel"}
Com a estrutura acima, conseguimos tratar alguns dos erros mais comuns que podem ocorrer ao fazer uma requisio a um servidor. Vale destacar que no necessariamente essa a melhor abordagem, mas ela um bom exemplo de como tratar erros customizados usando a linguagem Swift.
Consideraes
Caso voc tenha interesse em descobrir mais sobre tratamento de excees em Swift, voc pode ler a documentao. Espero que essa explicao tenha te ajudado!
Gostou deste artigo? Me siga para mais contedos como esse!
Minhas redes sociais:
Twitter | Instagram | Youtube.
At a prxima!
Original Link: https://dev.to/reisdev/tratamento-de-excecao-com-erros-customizados-em-swift-403b
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To