1dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz/* 2dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * Copyright (C) 2015 The Android Open Source Project 3dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * 4dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * Licensed under the Apache License, Version 2.0 (the "License"); 5dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * you may not use this file except in compliance with the License. 6dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * You may obtain a copy of the License at 7dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * 8dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * http://www.apache.org/licenses/LICENSE-2.0 9dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * 10dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * Unless required by applicable law or agreed to in writing, software 11dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * distributed under the License is distributed on an "AS IS" BASIS, 12dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * See the License for the specific language governing permissions and 14dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * limitations under the License. 15dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz */ 16dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz 17dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertzpackage dalvik.system; 18dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz 19dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz/** 20dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * An exception only used by the compiler to abort a transaction. 21dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * 22dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * @hide 23dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz */ 24dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertzfinal class TransactionAbortError extends InternalError { 25dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz /** 26dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * Constructs a new {@code TransactionAbortError} with its stack trace filled in. 27dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz */ 28dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz private TransactionAbortError() { 29dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz } 30dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz 31dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz /** 32dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * Constructs a new {@code TransactionAbortError} with its stack trace and detail 33dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * message filled in. 34dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * 35dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * @param detailMessage the detail message for the exception. 36dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz */ 37dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz private TransactionAbortError(String detailMessage) { 38dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz super(detailMessage); 39dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz } 40dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz 41dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz /** 42dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * Constructs a new {@code TransactionAbortError} with detail message and cause 43dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * filled in. 44dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * 45dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * @param message the detail message for the exception. 46dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * @param cause the detail cause for the exception. 47dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz */ 48dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz private TransactionAbortError(String message, Throwable cause) { 49dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz super(message); 50dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz initCause(cause); 51dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz } 52dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz 53dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz /** 54dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * Constructs a new {@code TransactionAbortError} with its detail cause filled in. 55dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * 56dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz * @param cause the detail cause for the exception. 57dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz */ 58dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz private TransactionAbortError(Throwable cause) { 59dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz this(cause == null ? null : cause.toString(), cause); 60dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz } 61dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz 62dc55eb76b775db0457c83796e1d454facf21f292Sebastien Hertz} 63