У меня есть фрагмент кода, который иногда вызывает NullPointerException. Пока что не очень интересно. Но исключение происходит в строке, которая не ссылается ни на какой объект.NullPointerException без ссылки на какой-либо объект
try
{
parser.parse(input);/*line 186*/
}
catch(Exception e)
{
//NPE happens in the next line?
throw new SAXException("Error parsing document", e);/*line 190*/
}
Здесь StackTrace
java.lang.NullPointerException
at com.tejoe.MyXMLParser.parse(MyXMLParser.java:190)
at com.tejoe.MyXMLParser.parse(MyXMLParser.java:168)
....
Это произошло только два раза в течение последних трех месяцев и код работать по крайней мере в сто тысяч раз.
Я уже декомпилировал свой код, чтобы убедиться, что информация о линии верна и да.
Дополнительные испытания
Там, кажется, что-то особенное с SAXException. Я сделал следующий тест:
import org.xml.sax.SAXException;
public class Test
{
public static void main(String[] args) throws Exception
{
new SAXException("Error", new NullPointerException()).printStackTrace();
}
}
я получил следующий вывод
java.lang.NullPointerException
at Test.main(Test.java:7)
Caused by: java.lang.NullPointerException
... 1 more
Решение: SAXException переопределяет метод ToString, чтобы вернуть Название причины Exception.
Теперь я только удивляюсь, что я не получил вызвано выходом в производственной среде (AIX JAVA)
parser.parse (вход); - парсер Null? вводит Null? – madhairsilence
Вы уверены, код, который вы показываете, из файла FwXMLParser.java, а не там, где вы используете этот класс? –
Я не уверен, что декомпиляция ничего не докажет в отношении номеров строк, если только она не сохраняет пустое пространство (что я сомневаюсь). –