Sobes.tech
Junior — Middle

Qual é a diferença entre as classes Error e Exception no contexto do tratamento de erros?

sobes.tech IA

Resposta da IA

No iOS (Swift), Error é um protocolo que os tipos que descrevem erros que podem ser lançados e tratados devem implementar. Exception como um tipo separado não existe em Swift, mas em outras linguagens (por exemplo, Objective-C), as exceções (NSException) são usadas para erros críticos que normalmente não são tratados através do mecanismo habitual de try-catch.

Em Swift, recomenda-se usar Error e o tratamento através de do-try-catch para erros controlados, e não exceções, que são destinadas a falhas imprevistas.

Exemplo de tratamento de erro em Swift:

enum FileError: Error {
    case fileNotFound
    case unreadable
}

func readFile() throws {
    throw FileError.fileNotFound
}

do {
    try readFile()
} catch FileError.fileNotFound {
    print("Ficheiro não encontrado")
} catch {
    print("Outro erro")
}