private static void printExceptionSummary(Ruby runtime, RubyException rEx) { RubyStackTraceElement[] elements = rEx.getBacktraceElements(); RubyStackTraceElement firstElement = elements.length > 0 ? elements[0] : new RubyStackTraceElement("", "", "(empty)", 0, false); String msg = String.format("Exception `%s' at %s:%s - %s\n", rEx.getMetaClass(), firstElement.getFileName(), firstElement.getLineNumber(), TypeConverter.convertToType(rEx, runtime.getString(), "to_s")); runtime.getErrorStream().print(msg); }
private static void printExceptionSummary(Ruby runtime, RubyException rEx) { RubyStackTraceElement[] elements = rEx.getBacktraceElements(); RubyStackTraceElement firstElement = elements.length > 0 ? elements[0] : new RubyStackTraceElement("", "", "(empty)", 0, false); String msg = String.format("Exception `%s' at %s:%s - %s\n", rEx.getMetaClass(), firstElement.getFileName(), firstElement.getLineNumber(), TypeConverter.convertToType(rEx, runtime.getString(), "to_s")); runtime.getErrorStream().print(msg); }
protected static String printBacktraceJRuby(RubyException exception, boolean console) { Ruby runtime = exception.getRuntime(); RubyStackTraceElement[] frames = exception.getBacktraceElements(); if (frames == null) frames = new RubyStackTraceElement[0];
protected static String printBacktraceJRuby(RubyException exception, boolean console) { Ruby runtime = exception.getRuntime(); RubyStackTraceElement[] frames = exception.getBacktraceElements(); if (frames == null) frames = new RubyStackTraceElement[0];
@Deprecated public RaiseException(Throwable cause, org.jruby.NativeException nativeException) { super(nativeException.getMessageAsJavaString(), cause); providedMessage = super.getMessage(); // cause.getClass().getId() + ": " + message setException(nativeException); preRaise(nativeException.getRuntime().getCurrentContext(), nativeException.getCause().getStackTrace()); setStackTrace(RaiseException.javaTraceFromRubyTrace(exception.getBacktraceElements())); }
@Deprecated public RaiseException(Throwable cause, org.jruby.NativeException nativeException) { super(nativeException.getMessageAsJavaString(), cause); providedMessage = super.getMessage(); // cause.getClass().getId() + ": " + message setException(nativeException); preRaise(nativeException.getRuntime().getCurrentContext(), nativeException.getCause().getStackTrace()); setStackTrace(RaiseException.javaTraceFromRubyTrace(exception.getBacktraceElements())); }
private static void printExceptionSummary(ThreadContext context, Ruby runtime, RubyException rEx) { RubyStackTraceElement[] elements = rEx.getBacktraceElements(); RubyStackTraceElement firstElement = elements.length > 0 ? elements[0] : new RubyStackTraceElement("", "", "(empty)", 0, false); String msg = String.format("Exception `%s' at %s:%s - %s\n", rEx.getMetaClass(), firstElement.getFileName(), firstElement.getLineNumber(), runtime.is1_9() ? TypeConverter.convertToType(rEx, runtime.getString(), "to_s") : rEx.convertToString().toString()); runtime.getErrorStream().print(msg); }
private static void printExceptionSummary(ThreadContext context, Ruby runtime, RubyException rEx) { RubyStackTraceElement[] elements = rEx.getBacktraceElements(); RubyStackTraceElement firstElement = elements.length > 0 ? elements[0] : new RubyStackTraceElement("", "", "(empty)", 0, false); String msg = String.format("Exception `%s' at %s:%s - %s\n", rEx.getMetaClass(), firstElement.getFileName(), firstElement.getLineNumber(), runtime.is1_9() ? TypeConverter.convertToType(rEx, runtime.getString(), "to_s") : rEx.convertToString().toString()); runtime.getErrorStream().print(msg); }
public RaiseException(Throwable cause, NativeException nativeException) { super(buildMessage(cause), cause); providedMessage = buildMessage(cause); setException(nativeException, true); preRaise(nativeException.getRuntime().getCurrentContext(), nativeException.getCause().getStackTrace()); setStackTrace(javaTraceFromRubyTrace(exception.getBacktraceElements())); }
protected static String printBacktraceJRuby(RubyException exception, boolean console) { final Ruby runtime = exception.getRuntime(); final ThreadContext context = runtime.getCurrentContext(); boolean color = console && runtime.getInstanceConfig().getBacktraceColor(); // exception line String message; try { message = exception.callMethod(context, "message").toString(); } catch (org.jruby.exceptions.Exception unused) { message = exception.message(context).toString(); } if (exception.getMetaClass() == runtime.getRuntimeError() && message.length() == 0) { message = "No current exception"; } String type = exception.getMetaClass().getName(); return printBacktraceJRuby(exception.getRuntime(), exception.getBacktraceElements(), type, message, color); }
protected static String printBacktraceJRuby(RubyException exception, boolean console) { final Ruby runtime = exception.getRuntime(); final ThreadContext context = runtime.getCurrentContext(); boolean color = console && runtime.getInstanceConfig().getBacktraceColor(); // exception line String message; try { message = exception.callMethod(context, "message").toString(); } catch (org.jruby.exceptions.Exception unused) { message = exception.message(context).toString(); } if (exception.getMetaClass() == runtime.getRuntimeError() && message.length() == 0) { message = "No current exception"; } String type = exception.getMetaClass().getName(); return printBacktraceJRuby(exception.getRuntime(), exception.getBacktraceElements(), type, message, color); }
public RaiseException(Throwable cause, NativeException nativeException) { super(buildMessage(cause), cause); providedMessage = buildMessage(cause); setException(nativeException, true); preRaise(nativeException.getRuntime().getCurrentContext(), nativeException.getCause().getStackTrace()); setStackTrace(javaTraceFromRubyTrace(exception.getBacktraceElements())); }
private void preRaise(ThreadContext context, IRubyObject backtrace) { context.runtime.incrementExceptionCount(); doSetLastError(context); doCallEventHook(context); if (backtrace == null) { exception.prepareBacktrace(context, nativeException); } else { exception.forceBacktrace(backtrace); } // call Throwable.setStackTrace so that when RaiseException appears nested inside another exception, // Ruby stack trace gets displayed // JRUBY-2673: if wrapping a NativeException, use the actual Java exception's trace as our Java trace if (exception instanceof NativeException) { setStackTrace(((NativeException)exception).getCause().getStackTrace()); } else { setStackTrace(javaTraceFromRubyTrace(exception.getBacktraceElements())); } if (RubyInstanceConfig.LOG_EXCEPTIONS) TraceType.dumpException(exception); }
private void preRaise(ThreadContext context, IRubyObject backtrace) { context.runtime.incrementExceptionCount(); doSetLastError(context); doCallEventHook(context); if (backtrace == null) { exception.prepareBacktrace(context, nativeException); } else { exception.forceBacktrace(backtrace); } // call Throwable.setStackTrace so that when RaiseException appears nested inside another exception, // Ruby stack trace gets displayed // JRUBY-2673: if wrapping a NativeException, use the actual Java exception's trace as our Java trace if (exception instanceof NativeException) { setStackTrace(((NativeException)exception).getCause().getStackTrace()); } else { setStackTrace(javaTraceFromRubyTrace(exception.getBacktraceElements())); } if (RubyInstanceConfig.LOG_EXCEPTIONS) TraceType.dumpException(exception); }
private void preRaise(ThreadContext context, IRubyObject backtrace) { context.runtime.incrementExceptionCount(); doSetLastError(context); doCallEventHook(context); if (RubyInstanceConfig.LOG_EXCEPTIONS) TraceType.logException(exception); // We can only omit backtraces of descendents of Standard error for 'foo rescue nil' if (requiresBacktrace(context)) { if (backtrace == null) { exception.prepareBacktrace(context); } else { exception.forceBacktrace(backtrace); if ( backtrace.isNil() ) return; } setStackTrace(RaiseException.javaTraceFromRubyTrace(exception.getBacktraceElements())); } }
private void preRaise(ThreadContext context, IRubyObject backtrace) { context.runtime.incrementExceptionCount(); doSetLastError(context); doCallEventHook(context); if (RubyInstanceConfig.LOG_EXCEPTIONS) TraceType.logException(exception); // We can only omit backtraces of descendents of Standard error for 'foo rescue nil' if (requiresBacktrace(context)) { if (backtrace == null) { exception.prepareBacktrace(context); } else { exception.forceBacktrace(backtrace); if ( backtrace.isNil() ) return; } setStackTrace(RaiseException.javaTraceFromRubyTrace(exception.getBacktraceElements())); } }