0Pricing
Swift Academy · Aula

do/catch e definição de erros (enums)

Defina enums de erros, lance-os a partir de funções e trate falhas com padrões do/catch (casos específicos, catch let e catch genérico).

do/catch e definição de erros (enums) é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 3 aulas no total.

Visão geral

Esta lição se concentra em definir erros tipados e tratá-los com do/catch. Você lançará uma enumeração e capturará casos específicos para obter caminhos de recuperação claros.

Enumeração de erros

Defina uma enum personalizada que esteja em conformidade com Error. Valores associados adicionam um contexto útil.

enum FileError: Error {
    case notFound(path: String)
    case unreadable(path: String)
    case corrupted
}
print("Defined FileError enum")

Noções básicas sobre lançamento de erros

Marque com throws as funções que podem falhar. Lance casos específicos quando as pré-condições não forem atendidas.

func loadText(from path: String) throws -> String {
    if path.isEmpty { throw FileError.notFound(path: "(empty)") }
    if !path.hasSuffix(".txt") { throw FileError.unreadable(path: path) }
    return "Contents of " + path
}
print("Ready to throw on bad input")

Capturas específicas

Use do/try/catch. Coloque os casos específicos de catch primeiro e, depois, um catch geral para o restante.

do {
    let text = try loadText(from: "notes.txt")
    print(text)
} catch FileError.notFound(let p) {
    print("Missing file at:", p)
} catch FileError.unreadable(let p) {
    print("Cannot read:", p)
} catch {
    print("Other error:", error)
}

catch let e switch

Use catch let error as YourError e, em seguida, switch para formatar mensagens fáceis de entender para o usuário.

do {
    _ = try loadText(from: "")
} catch let error as FileError {
    switch error {
    case .notFound(let p): print("not found:", p)
    case .unreadable(let p): print("unreadable:", p)
    case .corrupted: print("file corrupted")
    }
} catch {
    print("unexpected:", error.localizedDescription)
}

Recuperar ou relançar

Decida se deve recuperar (retornando uma alternativa de reserva) ou relançar o erro para quem chamou. Mantenha as regras simples e previsíveis.

func mustLoad(_ path: String) throws -> String {
    do {
        return try loadText(from: path)
    } catch FileError.notFound {
        // simple recovery: default content
        return "New file template"
    } catch {
        // escalate unknown issues
        throw error
    }
}
print(try? mustLoad("report.txt") ?? "(nil)")

Padrão para erros personalizados

Verificação rápida: qual é a maneira idiomática de definir erros personalizados?

Recapitulação

Recapitulação: defina erros tipados com uma enumeração em conformidade com Error, throw casos precisos e trate-os por meio de do/catch, colocando primeiro os ramos específicos e deixando o genérico por último.

Perguntas Frequentes

A aula “do/catch e definição de erros (enums)” é grátis?

Sim — o texto completo de “do/catch e definição de erros (enums)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 3 aulas no total.

O que vou aprender em “do/catch e definição de erros (enums)”?

Defina enums de erros, lance-os a partir de funções e trate falhas com padrões do/catch (casos específicos, catch let e catch genérico). Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.

Quanto tempo leva a aula “do/catch e definição de erros (enums)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Encadeamento de optionals e fundamentos do tratamento de erros
  2. do/catch e definição de erros (enums)
  3. Tipos Result — Result
← Voltar para Swift Academy