Skip to content

Commit d5a99f0

Browse files
committed
Use InteropLibrary to get exception message
1 parent 9d2beb1 commit d5a99f0

File tree

1 file changed

+13
-1
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/exception

1 file changed

+13
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/runtime/exception/ExceptionUtils.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import com.oracle.graal.python.nodes.call.CallNode;
5757
import com.oracle.graal.python.runtime.PythonContext;
5858
import com.oracle.truffle.api.CompilerAsserts;
59+
import com.oracle.truffle.api.CompilerDirectives;
5960
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
6061
import com.oracle.truffle.api.RootCallTarget;
6162
import com.oracle.truffle.api.Truffle;
@@ -64,6 +65,8 @@
6465
import com.oracle.truffle.api.frame.Frame;
6566
import com.oracle.truffle.api.frame.FrameInstance;
6667
import com.oracle.truffle.api.frame.FrameInstanceVisitor;
68+
import com.oracle.truffle.api.interop.InteropLibrary;
69+
import com.oracle.truffle.api.interop.UnsupportedMessageException;
6770
import com.oracle.truffle.api.nodes.Node;
6871
import com.oracle.truffle.api.nodes.RootNode;
6972
import com.oracle.truffle.api.source.SourceSection;
@@ -106,7 +109,16 @@ public static void printPythonLikeStackTrace(Throwable e) {
106109
}
107110
printStack(stack);
108111
}
109-
System.err.println(e.getMessage());
112+
InteropLibrary lib = InteropLibrary.getUncached();
113+
if (lib.isException(e)) {
114+
try {
115+
System.err.println(lib.getExceptionMessage(e));
116+
} catch (UnsupportedMessageException unsupportedMessageException) {
117+
throw CompilerDirectives.shouldNotReachHere();
118+
}
119+
} else {
120+
System.err.println(e.getMessage());
121+
}
110122
}
111123

112124
private static void appendStackLine(ArrayList<String> stack, Node location, RootNode rootNode, boolean evenWithoutSource) {

0 commit comments

Comments
 (0)