sig
  type t = java'lang'Throwable java_instance
  val make :
    ?cause:JavaThrowable.t ->
    ?message:JavaString.t -> unit -> JavaThrowable.t
  external throw : JavaThrowable.t -> 'a = "java throw"
  val get_cause : JavaThrowable.t -> java'lang'Throwable java_instance
  val get_message : JavaThrowable.t -> JavaString.t
  val get_stack_trace :
    JavaThrowable.t ->
    java'lang'StackTraceElement java_instance java_reference_array
  val print_stack_trace : JavaThrowable.t -> unit
  val null : JavaThrowable.t
  external is_null : JavaThrowable.t -> bool = "java is_null"
  external is_not_null : JavaThrowable.t -> bool = "java is_not_null"
  val wrap : JavaThrowable.t -> JavaThrowable.t option
  val unwrap : JavaThrowable.t option -> JavaThrowable.t
end