次のスクリプトでは、3 つの Java™ Class を使用して、スタックトレースの原因となるエラーを例示しています。この結果は「LotusScript® code」というラベルの付いたセクションの下に出力されます。
ClassA.java
public class ClassA {
ClassB CB = new ClassB();
public int FunctA(){
return CB.FunctB();
}
}
ClassB.java
public class ClassB {
ClassC CC = new ClassC();
public int FunctB(){
return CC.FunctC();
}
}
ClassC.java
public class ClassC {
int x = 10;
int y = 0;
public int FunctC(){
return x/y;
}
}
LotusScript コード
Dim mySession As JavaSession
Dim myClass As JavaClass
Dim myMethod As JavaMethod
Dim myObject As JavaObject
Dim myError As JavaError
Set mySession = New JavaSession ()
Set myClass = mySession.GetClass("ClassA")
Set myObject = myClass.CreateObject("()V")
Set myMethod = myClass.getMethod("FunctA", "()I")
On Error GoTo errhandler:
print myMethod.invoke(o)
done:
exit sub
errhandler:
set myError = mySession.getLastJavaError()
MessageBox myError.StackTrace,, Error
Resume done
(Results)
java.lang.ArithmeticException: / by zero
at valid5.javaconn.java.ClassC.FunctC(ClassC.java:6)
at valid5.javaconn.java.ClassB.FunctB(ClassB.java:5)
at valid5.javaconn.java.ClassA.FunctA(ClassA.java:5)