0

JPF を実行しようとしましたが、次のヌル ポインター例外が発生しました。

java.lang.NullPointerException at gov.nasa.jpf.vm.ThreadInfo$StackTraceElement.createJPFStackTraceElement(ThreadInfo.java:1671)

対応するコードは次のとおりです。

int createJPFStackTraceElement() {
    if (ignore) {
        return MJIEnv.NULL;
    } else {
        Heap heap = vm.getHeap();
        ClassInfo ci = ClassLoaderInfo.getSystemResolvedClassInfo("java.lang.StackTraceElement");
        ElementInfo ei = heap.newObject(ci, ThreadInfo.this);

        ei.setReferenceField("clsName", heap.newString(clsName, ThreadInfo.this).getObjectRef());
        ei.setReferenceField("mthName", heap.newString(mthName, ThreadInfo.this).getObjectRef());
        ei.setReferenceField("fileName", heap.newString(fileName, ThreadInfo.this).getObjectRef());  //line 1671
        ei.setIntField("line", line);

        return ei.getObjectRef();
    }
}
4

1 に答える 1

0

2つの方法があります

  1. コードにはnullチェックが含まれている必要があるため、最初に値がnullかどうかをチェックし、次にコードスニペットを実行するかどうかを決定します。
  2. または、try catch ブロックを使用できます。
于 2014-11-27T09:42:42.200 に答える