Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 27, 2021 12:20 pm GMT

Tratamento de Exceo com erros customizados em Swift

Capa por Sigmund no Unsplash

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

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To