SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Tratamento de Exceções
Cuide bem do seu usuário.
leo.malkes@gmail.com
Leonardo Malkes
leo_malkes
https://www.linkedin.com/in/leomalkes
Quem sou eu?
São Paulo/SP - Recife/PE
Quem nunca
viu isso?
Qual a solução para
que isso nunca
acontecer?
Está é a melhor abordagem?
try{

//code

}catch (Exception ex){

ex.printStackTrace();

}
Você sabe o que aconteceu?
Quando aconteceu?
Em quais dispositivos?
Crash Report
Splunk Mint - https://mint.splunk.com/
Fabric - https://get.fabric.io/
Firebase (beta) - https://www.firebase.com/
(antigo Bug Sense)
Fabric
https://fabric.io/download
1 - Instalar o plugin no Android Studio
2 - Configurar o Kit de crashlytics
3 - Pronto !!!
Arquivos alterados
build.gradle
AndroidManifest.xml
Activity (Main/Launcher)
Atenção: Se durante o
desenvolvimento a sua main/
launcher mudar, lembre-se de alterar
a inicialização do Fabric.
OU
Coloque na classe Application
Exemplo de um crash no Fabric
Firebase
https://console.firebase.google.com
1 - Criar o projeto no Console
2 - Copiar o google-services.json
3 - Configurar gradle
Exemplo de crash no Firebase
Legal né ?
Já temos uma forma de
identificar os crashes.
Mas……….
Como resolver isso ?? —->
uncaught exception
É uma interface para lidar com situações em que a Thread é terminada abruptamente
@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler(this));

setContentView(R.layout.activity_main);

}
public class ExceptionHandler implements Thread.UncaughtExceptionHandler {

private Activity mContext;

public ExceptionHandler(Activity context){

mContext = context;

}

@Override

public void uncaughtException(Thread thread, Throwable throwable) {

Intent it = new Intent(mContext,SorryActivity.class);

mContext.startActivity(it);

android.os.Process.killProcess(android.os.Process.myPid());

System.exit(10);

}

}
E o nosso amigo Fabric?
O Fabric é quem estava tratando o uncaught
exception. Precisamos agora fazer isso para ele.
public class ExceptionHandler implements Thread.UncaughtExceptionHandler {



private Activity mContext;



public ExceptionHandler(Activity context){

mContext = context;

}

@Override

public void uncaughtException(Thread thread, Throwable throwable) {


Crashlytics.logException(throwable);

Intent it = new Intent(mContext,SorryActivity.class);

mContext.startActivity(it);

android.os.Process.killProcess(android.os.Process.myPid());

System.exit(10);

}

}
E aí?? Qual dos dois você prefere.
Qual você acha que seu usuário vai preferir?
Dúvidas ?
Obrigado !
leo.malkes@gmail.com

Mais conteúdo relacionado

Semelhante a Tratamento de exceções

Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Flávio Lisboa
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Gustavo Pereira
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTelliando dias
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - FragmentsMarcio Palheta
 
Agile com Demoiselle - FISL 11
Agile com Demoiselle - FISL 11Agile com Demoiselle - FISL 11
Agile com Demoiselle - FISL 11Emerson Saito
 
Agile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework DemoiselleAgile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework DemoiselleSerge Rehem
 
Como manipular exceções em java
Como manipular exceções em javaComo manipular exceções em java
Como manipular exceções em javadaliarafaela
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizadosThiago Ghisi
 
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...Gleicon Moraes
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Emerson Saito
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoEmbarcados
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Aula 02 fundamentos
Aula 02   fundamentosAula 02   fundamentos
Aula 02 fundamentosfmkoba
 
Agile & Open Source - A Experiencia do Framework Demoiselle
Agile & Open Source - A Experiencia do Framework DemoiselleAgile & Open Source - A Experiencia do Framework Demoiselle
Agile & Open Source - A Experiencia do Framework DemoiselleSerge Rehem
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETAlessandro Binhara
 
W3af - Web Attack and Audit Framework
W3af - Web Attack and Audit FrameworkW3af - Web Attack and Audit Framework
W3af - Web Attack and Audit FrameworkLeandro Magnabosco
 

Semelhante a Tratamento de exceções (20)

Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2Gerenciando aspectos e eventos com Zend Framework 2
Gerenciando aspectos e eventos com Zend Framework 2
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!
 
Java1
Java1Java1
Java1
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
 
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANTAutomação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
Automação no ambientAutomação no ambiente de desenvolvimento com Maven e ANT
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - Fragments
 
Agile com Demoiselle - FISL 11
Agile com Demoiselle - FISL 11Agile com Demoiselle - FISL 11
Agile com Demoiselle - FISL 11
 
Agile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework DemoiselleAgile & Open Source: A Experiência do Framework Demoiselle
Agile & Open Source: A Experiência do Framework Demoiselle
 
Fragmentos
FragmentosFragmentos
Fragmentos
 
[Tutorial] metasploit
[Tutorial] metasploit[Tutorial] metasploit
[Tutorial] metasploit
 
Como manipular exceções em java
Como manipular exceções em javaComo manipular exceções em java
Como manipular exceções em java
 
Introdução a testes automatizados
Introdução a testes automatizadosIntrodução a testes automatizados
Introdução a testes automatizados
 
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
QCon SP 2015 - Advogados do diabo: como a arquitetura emergente de sua aplica...
 
Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL Palestra Demoiselle V1.x no 11 FISL
Palestra Demoiselle V1.x no 11 FISL
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcado
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Aula 02 fundamentos
Aula 02   fundamentosAula 02   fundamentos
Aula 02 fundamentos
 
Agile & Open Source - A Experiencia do Framework Demoiselle
Agile & Open Source - A Experiencia do Framework DemoiselleAgile & Open Source - A Experiencia do Framework Demoiselle
Agile & Open Source - A Experiencia do Framework Demoiselle
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NET
 
W3af - Web Attack and Audit Framework
W3af - Web Attack and Audit FrameworkW3af - Web Attack and Audit Framework
W3af - Web Attack and Audit Framework
 

Tratamento de exceções