package org.jerlang.erts.erlang;
import static org.jerlang.type.List.nil;
import org.jerlang.type.List;
import org.jerlang.type.Str;
import org.jerlang.type.Term;
import org.jerlang.type.Tuple;
/**
* Exception thrown by `erlang:error/1` and `erlang:error/2`.
*/
public class Error extends RuntimeException {
public static final Error badarg = new Error("badarg");
private final Term reason;
private final List args;
public Error(String reason) {
this(Str.of(reason), nil);
}
public Error(Term reason) {
this(reason, nil);
}
public Error(Term reason, List args) {
this.reason = reason;
this.args = args;
}
public Term reason() {
return reason;
}
@Override
public String toString() {
// TODO: Stack trace
return Tuple.of(reason).toString();
}
}