/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.net.lowpan; import android.os.ServiceSpecificException; import android.util.AndroidException; /** * LowpanException is thrown if an action to a LoWPAN interface could not be performed * or a LoWPAN interface property could not be fetched or changed. * * @see LowpanInterface * @hide */ // @SystemApi public class LowpanException extends AndroidException { public LowpanException() {} public LowpanException(String message) { super(message); } public LowpanException(String message, Throwable cause) { super(message, cause); } public LowpanException(Exception cause) { super(cause); } /* This method returns LowpanException so that the caller * can add "throw" before the invocation of this method. * This might seem superfluous, but it is actually to * help provide a hint to the java compiler that this * function will not return. */ static LowpanException rethrowFromServiceSpecificException(ServiceSpecificException e) throws LowpanException { switch (e.errorCode) { case ILowpanInterface.ERROR_DISABLED: throw new InterfaceDisabledException(e); case ILowpanInterface.ERROR_WRONG_STATE: throw new WrongStateException(e); case ILowpanInterface.ERROR_CANCELED: throw new OperationCanceledException(e); case ILowpanInterface.ERROR_JOIN_FAILED_UNKNOWN: throw new JoinFailedException(e); case ILowpanInterface.ERROR_JOIN_FAILED_AT_SCAN: throw new JoinFailedAtScanException(e); case ILowpanInterface.ERROR_JOIN_FAILED_AT_AUTH: throw new JoinFailedAtAuthException(e); case ILowpanInterface.ERROR_FORM_FAILED_AT_SCAN: throw new NetworkAlreadyExistsException(e); case ILowpanInterface.ERROR_FEATURE_NOT_SUPPORTED: throw new LowpanException( e.getMessage() != null ? e.getMessage() : "Feature not supported", e); case ILowpanInterface.ERROR_NCP_PROBLEM: throw new LowpanRuntimeException( e.getMessage() != null ? e.getMessage() : "NCP problem", e); case ILowpanInterface.ERROR_INVALID_ARGUMENT: throw new LowpanRuntimeException( e.getMessage() != null ? e.getMessage() : "Invalid argument", e); case ILowpanInterface.ERROR_UNSPECIFIED: default: throw new LowpanRuntimeException(e); } } }