org.jruby.Ruby.getSignalException()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.3k)|赞(0)|评价(0)|浏览(184)

本文整理了Java中org.jruby.Ruby.getSignalException方法的一些代码示例,展示了Ruby.getSignalException的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ruby.getSignalException方法的具体详情如下:
包路径:org.jruby.Ruby
类名称:Ruby
方法名:getSignalException

Ruby.getSignalException介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-complete

/**
 * This is only used from the main(String[]) path, in which case the err for this
 * run should be System.err. In order to avoid the Ruby err being closed and unable
 * to write, we use System.err unconditionally.
 *
 * @param ex
 * @return
 */
protected static int handleRaiseException(final RaiseException ex) {
  RubyException raisedException = ex.getException();
  final Ruby runtime = raisedException.getRuntime();
  if ( runtime.getSystemExit().isInstance(raisedException) ) {
    IRubyObject status = raisedException.callMethod(runtime.getCurrentContext(), "status");
    if (status != null && ! status.isNil()) {
      return RubyNumeric.fix2int(status);
    }
    return 0;
  } else if ( runtime.getSignalException().isInstance(raisedException) ) {
    IRubyObject status = raisedException.callMethod(runtime.getCurrentContext(), "signo");
    if (status != null && ! status.isNil()) {
      return RubyNumeric.fix2int(status) + 128;
    }
    return 0;
  }
  System.err.print(runtime.getInstanceConfig().getTraceType().printBacktrace(raisedException, runtime.getPosix().isatty(FileDescriptor.err)));
  return 1;
}

代码示例来源:origin: org.jruby/jruby-core

/**
 * This is only used from the main(String[]) path, in which case the err for this
 * run should be System.err. In order to avoid the Ruby err being closed and unable
 * to write, we use System.err unconditionally.
 *
 * @param ex
 * @return
 */
protected static int handleRaiseException(final RaiseException ex) {
  RubyException raisedException = ex.getException();
  final Ruby runtime = raisedException.getRuntime();
  if ( runtime.getSystemExit().isInstance(raisedException) ) {
    IRubyObject status = raisedException.callMethod(runtime.getCurrentContext(), "status");
    if (status != null && ! status.isNil()) {
      return RubyNumeric.fix2int(status);
    }
    return 0;
  } else if ( runtime.getSignalException().isInstance(raisedException) ) {
    IRubyObject status = raisedException.callMethod(runtime.getCurrentContext(), "signo");
    if (status != null && ! status.isNil()) {
      return RubyNumeric.fix2int(status) + 128;
    }
    return 0;
  }
  System.err.print(runtime.getInstanceConfig().getTraceType().printBacktrace(raisedException, runtime.getPosix().isatty(FileDescriptor.err)));
  return 1;
}

相关文章

Ruby类方法