Não seria necessário o uso de um try/catch na hora que o aplicativo tentasse buscar pelo caminho da foto? Nesse caso o programa iria crashar se a foto houvesse sido deletada, não?
Não seria necessário o uso de um try/catch na hora que o aplicativo tentasse buscar pelo caminho da foto? Nesse caso o programa iria crashar se a foto houvesse sido deletada, não?
Olá João Pedro,
Nosso código quebraria se a foto fosse excluída, a Exception que levaríamos é :
NullPointerException
Nosso código está assim :
Bitmap bm;
if (aluno.getCaminhoFoto() != null) {
bm = BitmapFactory.decodeFile(aluno.getCaminhoFoto());
} else {
bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.user);
}
bm = Bitmap.createScaledBitmap(bm, 100, 100, true); // aqui levaríamos a exception !!
foto.setScaleType(ImageView.ScaleType.FIT_XY);
foto.setImageBitmap(bm);
Pois em nosso banco de dados, temos o caminho da imagem, e quando ele busca e não acha nada, nosso bitmap é nulo.
Se usarmos um try/ catch, pode ser feito desta forma :
Bitmap bm;
if (aluno.getCaminhoFoto() != null) {
bm = BitmapFactory.decodeFile(aluno.getCaminhoFoto());
} else {
bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.user);
}
try {
bm = Bitmap.createScaledBitmap(bm, 100, 100, true);
} catch (NullPointerException e){
Log.e("Exception :", e.toString());
bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.user);
bm = Bitmap.createScaledBitmap(bm, 100, 100, true);
}
foto.setScaleType(ImageView.ScaleType.FIT_XY);
foto.setImageBitmap(bm);
Espero ter ajudado !
Qualquer dúvida pode perguntar.
Abraço :)