سؤال

أتلقى الاستثناءات التالية org.zkoss.zk.ui.UiException و java.lang.NumberFormatException. هل يمكن لأحد أن يساعد؟ stacktrace الخاص بي على النحو التالي:

Nov 08, 2013 10:43:17 AM org.zkoss.zk.ui.impl.UiEngineImpl handleError:1359
SEVERE: >>org.zkoss.zk.ui.UiException: For input string: "Enter Number"
>>java.lang.NumberFormatException: For input string: "Enter Number"
>>  at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
>>  at java.lang.Double.parseDouble(Unknown Source)
>>  at com.abcd.acd.a.web.viewmodel.FolderInfoEditViewModel.loadFolderInfoList(FolderInfoEditViewModel.java:633)
>>  at com.abcd.acd.a.web.viewmodel.FolderInfoEditViewModel.afterCompose(FolderInfoEditViewModel.java:116)
>>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


ملف Zul الخاص بي:

<zk if="${civilInfoData.infoType.equalsIgnoreCase('n') and !civilInfoData.encrypted }">
       <doublebox value="@bind(civilInfoData.folderInforecord.infoValueNumeric)" 
           hflex="1" placeholder="@load(vm.getText('FolderInfoDetail:LABEL_VALUE'))"
           mandatory="@load(civilInfoData.folderInforecord.valueRequired)"
           maxlength="10" 
           tooltiptext="@load(vm.getText('FolderInfoDetail:ENTER_NUMBER'))">
        </doublebox>
</zk>


ViewModel (FolderInfoEditViewModel.java):

 if (info.getInfoType().equalsIgnoreCase("n")) {
       if (StringUtils.isNotBlank(info.getFolderInforecord().getInfoValue()) &&
           !info.getFolderInforecord().getInfoValue().equalsIgnoreCase("null")) {

                     info.setInfoNumericValue(Double.parseDouble(
                                                 info.getFolderInforecord()
                                                     .getInfoValue()));

        }
  }

هل يمكن لأحد أن يخبرني كيف يمكن حل هذه المشكلة؟

شكرًا

هل كانت مفيدة؟

المحلول

info.getFolderInforecord().getInfoValue() يعود أ String هذا لا يحلل بنجاح double, ، وهذا هو السبب في أنك تحصل على ملف NumberFormatException. بدون مزيد من المعلومات ، هذا كل ما يمكنني قوله.

أنت تتحقق فقط من أن هذا ليس فارغًا ولا يساوي "NULL". يمكنك إيقاف برنامجك من الانهيار عن طريق لف الرمز في try/catch حيث تتعامل مع NumberFormatException

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top