Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Каждый браузер, который поддерживает XHTML (Firefox, Opera, Safari, IE9) поддерживает закрывающийся автоматически синтаксис на [1 139] каждый элемент .
<div/>
, <script/>
, <br></br>
все должны работать просто великолепно. Если они не делают, то Вы имеете HTML с неуместно добавленным XHTML DOCTYPE.
DOCTYPE не изменяется, как документ интерпретируется. Только тип MIME делает .
решение W3C об игнорировании DOCTYPE:
HTML WG обсудила этот вопрос: намерение состояло в том, чтобы позволить старым браузерам (только для HTML) принимать документы XHTML 1.0 следующим инструкции и обслуживание их как текст/HTML. Поэтому документы служили текстом/HTML, должен рассматриваться как HTML и не как XHTML.
Это - очень распространенная ошибка, потому что Блок проверки допустимости W3C в основном игнорирует то правило, но браузеры следуют за ним неукоснительно. Читайте HTML Понимания, XML и XHTML из блога WebKit:
<час>На самом деле, подавляющее большинство, предположительно, документов XHTML в Интернете подается в качестве
text/html
. Что означает, что они не XHTML вообще, но на самом деле недопустимый HTML that’s продвигающийся на обработке ошибок синтаксических анализаторов HTML. Все те “Valid XHTML 1.0! В ссылках ” на сеть действительно говорится HTML 4.01 “Invalid! ”.
, Чтобы протестировать, есть ли у Вас реальный XHTML или недопустимый HTML с DOCTYPE XHTML, поместите это в свой документ:
<span style="color:green"><span style="color:red"/>
If it's red, it's HTML. Green is XHTML.
</span>
Это проверяет, и в реальном XHTML это работает отлично (см.: 1 по сравнению с [1 115] 2 ). Если Вы не можете верить глазам (или не знайте, как установить типы MIME), откройте свою страницу через [1 116] прокси XHTML .
Другим способом проверить является источник представления в Firefox. Это выделит наклонные черты красного цвета, когда они будут недопустимы.
В HTML5/XHTML5 это не изменилось, и различие еще более ясно, потому что Вы даже не имеете дополнительными DOCTYPE
. Content-Type
король.
Для записи, спецификация XHTML позволяет любому элементу быть закрывающимся автоматически путем создания XHTML приложение XML: [шахта акцента]
Пустые теги элементов могут использоваться для [1 141] любой элемент, который не имеет никакого содержания , объявляется ли это с помощью ПУСТОГО ключевого слова.
Это также явно показывают в спецификация XHTML:
Пустые элементы должны или , имеют конечный тэг или тег запуска, должен закончиться
/>
. Например,<br/>
или<hr></hr>
Другой сам проблема закрывающего тэга для IE является элементом заголовка. Когда IE (просто попробовал его в IE7) видит это, это представляет пользователя пустая страница. Однако Вы "просматриваете источник", и все там.
<title/>
я первоначально видел это когда мой XSLT, сгенерированный сам закрывающий тэг.
В прошлый раз, когда я проверил, следующее были пустые/пустые элементы, перечисленные в HTML5.
Допустимый для авторов: область, основа, br, седло, команда, встраивает, eventsource, час, img, ввела, связывается, meta, параметрический усилитель, источник
Недопустимый для авторов: basefont, bgsound, кадр, распорная деталь, wbr
Помимо некоторых, которые являются новыми в HTML5, который должен дать Вам общее представление о, которые могли бы поддерживаться при обслуживании XHTML в качестве текста/HTML. (Просто протестируйте их путем исследования произведенного DOM.)
Что касается XHTML служил application/xhtml+xml (который делает его XML), правила XML применяются, и любой элемент может быть пустым (даже при том, что DTD XHTML не может выразить этого).
Необходимо взглянуть xHTML ДАТЫ , они все перечислены. Вот является быстрый обзор всеми основными:
<br />
<hr />
<img />
<input />
<area />
<base />
<basefont />
<br />
<hr />
<input />
<img />
<link />
<meta />
Закрывающийся автоматически синтаксис работает над всеми элементами в application/xhtml+xml. Это, который isn’t поддерживал на любом элементе в тексте/HTML, но элементы, которые являются “empty” в HTML4 или “void” в HTML5 don’t, берут конечный тэг так или иначе, поэтому при помещении наклонной черты на тех, которые появляется, как будто закрывающийся автоматически синтаксис поддерживался.
Один элемент, чтобы быть очень осторожным с по этой теме <script
> элемент. Если у Вас будет внешний исходный файл, он вызовет проблемы сам при закрытии его. Попробуйте его:
<!-- this will not consistently work in all browsers! -->
<script type="text/javascript" src="external.js" />
Это будет работать в Firefox, но перерывах в IE6, по крайней мере. Я знаю, потому что я столкнулся с этим, когда фанатично сам закрытие каждого элемента я видел;-)
Что относительно <meta>
и <link>
? Почему они не находятся в том списке?
Быстрое эмпирическое правило, не самозакрывайте элемент, который предназначается для имения содержания, потому что это определенно вызовет проблемы браузера рано или поздно.
Те, которые являются естественно закрывающимися автоматически, как <br>
и <img>
, должны быть очевидными. Те, которые не являются... просто, не самозакрывают их!
Надеюсь, это кому-то поможет:
<base />
<basefont />
<frame />
<link />
<meta />
<area />
<br />
<col />
<hr />
<img />
<input />
<param />