Способы обработки исключений: Мы можем обработать «оператор проблемы» («оператор проблемы» - это любой оператор, который может вызвать исключение) двумя способами.
- Заключить оператор в блок
try-catch
. - Добавить
throws
предложение в заголовке метода.
Обработка исключений в переопределенных методах: Если вы переопределяете метод в дочернем классе.Тогда вы не можете добавить пункт дополнительных бросков в свою подпись.В вашем случае onCreate
- это метод в родительском классе, который переопределяется в дочернем классе, поэтому мы не можем добавить предложение throws в его заголовок.Таким образом, вы должны заключать любые «Заявления о проблемах» в методе onCreate
в блоки try-catch.
Примеры: Заключите оператор в блок try-catch
.
public void myMethod(){
try{
// Problem Statement
}catch(IllegalAccessException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}
}
Добавьте предложение throws
в заголовок метода.
public void myMethod()
throws IllegalAccessException, NullPointerException{
// Problem Statement
}
Примеры Переопределенные методы: Допустимое предложение throws: Предложение throws в переопределенном методе действует, если оно также входит в метод parent.
public class Parent {
public int method()
throws IllegalAccessException,NullPointerException, Exception {
return 0;
}
}
public class child extends Parent {
// throws is part of method because parent method
// have throws clause
@Override
public int method()
throws IllegalAccessException, NullPointerException,
Exception {
//Problem Statement
return super.method();
}
}
Недопустимое предложение throws: Предложение throws вПереопределенный метод недопустим, если он отсутствует в методе родителя.
public class Parent {
public int method(){
return 0;
}
}
public class child extends Parent {
//**Error:** We can not append throws clause in the method because
// parent method do not have a throws clause
@Override
public int method()
throws IllegalAccessException, NullPointerException,
Exception {
//Problem Statement
return super.method();
}
}
Поэтому мы должны изменить метод нашего дочернего класса и удалить предложение throws
, так как родительский метод не содержит предложение throws в этой конкретной ситуации.Мы должны обработать исключение через блок try-catch
.
public class child extends Parent {
//**Error:** We can not append throws clause in the method because
// parent method do not have a throws clause
@Override
public int method() {
try{
// Problem Statement
}catch(IllegalAccessException e){
e.printStackTrace();
}catch(NullPointerException e){
e.printStackTrace();
}
}
}