| package android.hardware.camera2.utils; |
| |
| import android.hardware.camera2.CameraAccessException; |
| |
| /** |
| * @hide |
| */ |
| public class CameraRuntimeException extends RuntimeException { |
| |
| private final int mReason; |
| private String mMessage; |
| private Throwable mCause; |
| |
| public final int getReason() { |
| return mReason; |
| } |
| |
| public CameraRuntimeException(int problem) { |
| super(); |
| mReason = problem; |
| } |
| |
| public CameraRuntimeException(int problem, String message) { |
| super(message); |
| mReason = problem; |
| mMessage = message; |
| } |
| |
| public CameraRuntimeException(int problem, String message, Throwable cause) { |
| super(message, cause); |
| mReason = problem; |
| mMessage = message; |
| mCause = cause; |
| } |
| |
| public CameraRuntimeException(int problem, Throwable cause) { |
| super(cause); |
| mReason = problem; |
| mCause = cause; |
| } |
| |
| /** |
| * Recreate this exception as the CameraAccessException equivalent. |
| * @return CameraAccessException |
| */ |
| public CameraAccessException asChecked() { |
| CameraAccessException e; |
| |
| if (mMessage != null && mCause != null) { |
| e = new CameraAccessException(mReason, mMessage, mCause); |
| } else if (mMessage != null) { |
| e = new CameraAccessException(mReason, mMessage); |
| } else if (mCause != null) { |
| e = new CameraAccessException(mReason, mCause); |
| } else { |
| e = new CameraAccessException(mReason); |
| } |
| // throw and catch, so java has a chance to fill out the stack trace |
| e.setStackTrace(this.getStackTrace()); |
| |
| return e; |
| } |
| } |