Исключение NullPointerException, возникающее в asString()
Я не знаю, что вызывает исключение nullpointerexception. Иногда эта функция будет работать, а иногда она выдаст исключение нулевого указателя:
public function addCoverageNB(aRow: FixedWidthWriterRowML, pALine: PersonalAutoLine) {
if (pALine.PAUMBICovExists) {
var packageValuesNB = pALine.PAUMBICov.PAUMBITerm.PackageValue.PackageTerms
var individualLimit = packageValuesNB?.first().Value.asString()
var occurrenceLimit = packageValuesNB?.last().Value.asString()
addTextValueToRow(aRow, NB_CODE, 4)
addNumericValueToRow(aRow, getNumericValue(individualLimit), 8)
addNumericValueToRow(aRow, getNumericValue(occurrenceLimit), 8)
addNumericValueToRow(aRow, CommonConstantsML.ZERO, 8)
} else {
addEmptyCoverage(aRow)
}
}
Трассировки стека:
null
java.lang.NullPointerException
at metlife.integration.lexisnexis.currentcarrier.pa.mapper.PR01AutoCoveragesMapperML.addCoverageNB(PR01AutoCoveragesMapperML.gs:226)
at metlife.integration.lexisnexis.currentcarrier.pa.mapper.PR01AutoMapperML.addCoverageInfo(PR01AutoMapperML.gs:155)
at metlife.integration.lexisnexis.currentcarrier.pa.mapper.PR01AutoMapperML.generatePR01Record(PR01AutoMapperML.gs:40)
at metlife.integration.lexisnexis.currentcarrier.pa.writer.PACurrentCarrierFileWriterML.writeNotificationToFileWriterImpl(PACurrentCarrierFileWriterML.gs:92)
В основном packageValueNB содержит 2 значения. (50000/100000). Я думаю, что это как-то связано с.asString() вместо использования.toString(). Я новичок в программировании, поэтому я немного запутался в разнице. Основываясь на трассировке стека, кажется, что он выбрасывает ноль в:
var individualLimit = packageValuesNB?.first().Value.asString()
Мой вопрос заключается в том, могу ли я здесь что-нибудь сделать, чтобы предотвратить нулевое исключение во время выполнения.