As exceções do Android são erros de tempo de execução que interrompem o fluxo normal da execução de um aplicativo. Eles são uma subclasse da classe `Throwable 'em Java (e Kotlin, que interoperam perfeitamente com o manuseio de exceção de Java). Eles sinalizam que algo inesperado aconteceu, exigindo que o aplicativo lide com a situação ou termine graciosamente (para evitar falhas).
O Android não possui um conjunto único de exceções * específico * para a própria plataforma Android, mas usa exceções Java e introduz algumas situações comumente encontradas no ambiente do Android. Estes podem ser amplamente categorizados como:
1. Exceções Java comuns: Muitas exceções padrão de Java também são relevantes no desenvolvimento do Android:
*
`NullPointerException` (NPE): A exceção mais comum. Ocorre quando você tenta acessar um membro (método ou campo) de um objeto que atualmente é `null`.
*
`indexOutOfBoundSexception`: Jogado quando você tenta acessar uma matriz ou elemento de lista usando um índice fora dos limites (por exemplo, tentando acessar o 10º elemento de uma matriz de 5 elementos).
*
`ilegalargumentException`: Jogado quando um método recebe um argumento que não foi projetado para lidar.
*
`ilegalStateException`: Jogado quando um método é chamado em um momento inadequado no ciclo de vida de um objeto.
*
`ClastCastException`: Jogado quando você tenta lançar um objeto para um tipo com o qual não é compatível.
*
`arithmeticexception`: Ocorre durante operações aritméticas, como a divisão por zero.
*
`ioexception`: Ocorre durante as operações de entrada/saída (por exemplo, leitura de um arquivo ou rede).
*
`RUNTimeException`: A classe base para muitas exceções desmarcadas (exceções que não precisam ser tratadas explicitamente no código). `NullpointerException` e` indexOutOfBoundSexception` são exemplos.
2. Exceções específicas do Android (ou situações que levam a exceções comuns): Embora não sejam de exceção distinta *classes *, esses são cenários de erro comuns no desenvolvimento do Android:
*
problemas de rede: Exceções relacionadas a problemas de conectividade de rede geralmente se manifestam como `ioexception` ou subclasses (por exemplo,` sockettimeoutException`, `UnknownHosception ').
*
Problemas de permissões: Se o seu aplicativo tentar acessar um recurso (como a câmera ou o local) sem as permissões necessárias, ele poderá levar a uma `securityException` ou a operação simplesmente falhando silenciosamente.
*
problemas de recurso: Tentar acessar recursos que não existem (por exemplo, um arquivo de layout ou desenhado) pode levar a `recursos.NotFoundException`.
*
Questões de simultaneidade: Problemas relacionados à multi-threading (por exemplo, condições de corrida, impasse) geralmente se manifestam como "ilegalstateException" ou outro comportamento inesperado.
*
Questões do ciclo de vida: Os métodos de chamada em uma atividade ou outro componente no ponto errado de seu ciclo de vida podem resultar em `ilegalStateException '.
*
Problemas de banco de dados: Os erros que interagem com bancos de dados (como o SQLite) podem levar ao `sqLexception`.
*
Memória baixa: Quando o sistema está com pouca memória, pode levar a falhas, geralmente indiretamente através de um `outOfMemoryError` (embora tecnicamente não seja uma exceção da mesma maneira que outros).
Manipulando exceções: O Android, como o Java, usa blocos `Try-Catch` para lidar com exceções:
`` `Java
tentar {
// código que pode lançar uma exceção
int resultado =10 /0; // Isso causará uma aritmeticexception
} catch (arithmeticexception e) {
// manipula a aritmeticexception
Log.e ("MyApp", "Divisão de Zero!", E);
} catch (Exceção e) {// pega qualquer outra exceção
Log.e ("myApp", "ocorreu um erro:" + e.getMessage (), e);
} finalmente {
// código que sempre é executado, independentemente de ocorrer uma exceção. (por exemplo, recursos de fechamento)
}
`` `
Lembre -se de lidar com exceções adequadamente para impedir que seu aplicativo trave e ofereça uma melhor experiência do usuário. O manuseio de erro adequado é crucial para o desenvolvimento robusto de aplicativos para Android.