A NullReferenceException
бросается, когда мы пытаемся получить доступ к свойствам нулевого объекта или когда значение строки становится пустым, и мы пытаемся получить доступ к строковым методам.
Например:
string str = string.Empty;
str.ToLower(); // throw null reference exception
Public Class Person {
public string Name { get; set; }
}
Person objPerson;
objPerson.Name /// throw Null refernce Exception
Основной класс super.constructor неявно вызывается расширением класса конструктора:
class Base
{
public Base () throws Exception
{
throw <>;
}
}
class Derived extends Base
{
public Derived ()
{
}
}
Теперь нужно обработать исключение внутри Derived()
или сделать конструктор как,
public Derived() throws Exception
{
}
Каким бы способом вы new
не подняли объект Derived
, либо вы его вложите в try-catch
, либо сделаете этот метод броском Exception
, как указано выше. [Примечание: это псевдо-код]
Конструктор по умолчанию неявно вызывает супер-конструктор, который, как предполагается, бросает какое-то исключение, которое нужно обрабатывать в конструкторе подкласса. для подробного ответа отправьте код
class Base{
public Base() throw SomeException{
//some code
}
}
class Child extends Base{
public Child(){
//here it implicitly invokes `Base()`, So handle it here
}
}
Любой подкласс, который расширяет суперкласс, чей конструктор по умолчанию обрабатывает какое-то исключение, подкласс должен иметь конструктор по умолчанию, который реализует исключение
класс Super {public Super () throws Exception {}}
класс Sub extends Супер {public Sub () throws Exception {//}}