0Pricing
Swift Academy · Aula

Logging, assert/precondition/fatalError

Registre o estado com print/debugPrint e escolha entre assert (apenas em depuração), precondition (verificado na versão de lançamento) e fatalError (falha) para invariantes.

Logging, assert/precondition/fatalError é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 de 2. 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 2 aulas no total.

Ferramentas de diagnóstico

Use um simples registro para visualizar o estado; imponha suposições com asserções, pré-condições e fatalError.

  • asserção: verificações somente na depuração
  • pré-condição: também verificada na versão de lançamento
  • fatalError: interrompe imediatamente

Registro leve

A impressão é legível; debugPrint mostra mais detalhes (útil durante a depuração).

let user = ["name": "Ana", "role": "admin"]
print("User:", user)            // user-friendly
debugPrint("User:", user)       // includes type details when available

let point = (x: 3, y: 5)
print("Point:", point)
debugPrint("Point:", point)

Asserção (somente na depuração)

A asserção interrompe o programa no modo Debug quando a condição é falsa; ela é removida em compilações Release otimizadas.

// Even numbers only (demo)
func half(of x: Int) -> Int {
    assert(x % 2 == 0, "Expected even number, got \(x)")
    return x / 2
}
print(half(of: 8))   // OK in Debug/Release
// In Debug, failing the assert would stop and print the message.
// In Release, assert checks are disabled by default.

Pré-condição (verificada na versão de lançamento)

A pré-condição valida requisitos críticos em Debug e Release. Use-a para erros do programador que nunca devem ocorrer.

// Safe divide with required precondition
func safeDivide(_ a: Int, by b: Int) -> Int {
    precondition(b != 0, "Divider must be nonzero")
    return a / b
}
print(safeDivide(10, by: 2))    // 5
// If called with 0, precondition fails in Debug and Release.

fatalError (pare agora)

fatalError interrompe a execução imediatamente e informa uma mensagem. Use-o para caminhos de código inalcançáveis ou funcionalidades não implementadas durante o desenvolvimento.

enum FileKind { case text, binary }

func open(kind: FileKind) {
    switch kind {
    case .text:
        print("Open text mode")
    case .binary:
        print("Open binary mode")
    // If we ever add a new case and forget to handle it, we could use:
    // default: fatalError("Unsupported file kind")
    }
}
open(kind: .text)

Quando usar cada opção

Diretrizes:

  • impressão/debugPrint para registros rápidos (remova-os depois ou controle-os com sinalizadores).
  • asserção para verificações de desenvolvedor somente na depuração.
  • pré-condição quando o programa não deve continuar em nenhuma compilação se um requisito falhar.
  • fatalError para caminhos inalcançáveis ou não implementados.

Diagnóstico verificado na versão de lançamento

Verificação rápida: qual diagnóstico continua sendo verificado nas compilações Release?

Recapitulação

Recapitulação: registre com impressão/debugPrint, proteja invariantes com asserção (depuração), pré-condição (também na versão de lançamento) e use fatalError para estados realmente inalcançáveis.

Perguntas Frequentes

A aula “Logging, assert/precondition/fatalError” é grátis?

Sim — o texto completo de “Logging, assert/precondition/fatalError” é 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 2 aulas no total.

O que vou aprender em “Logging, assert/precondition/fatalError”?

Registre o estado com print/debugPrint e escolha entre assert (apenas em depuração), precondition (verificado na versão de lançamento) e fatalError (falha) para invariantes. 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 2.

Quanto tempo leva a aula “Logging, assert/precondition/fatalError”?

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. Fundamentos do XCTest (destinos e fixtures)
  2. Logging, assert/precondition/fatalError
← Voltar para Swift Academy