org.apache.dubbo.rpc.RpcException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dubbo Show documentation
Show all versions of dubbo Show documentation
The all in one project of dubbo
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.dubbo.rpc;
import javax.naming.LimitExceededException;
/**
* RPC Exception. (API, Prototype, ThreadSafe)
*
* @serial Don't change the class name and properties.
* @see org.apache.dubbo.rpc.Invoker#invoke(Invocation)
* @since 1.0
*/
public class RpcException extends RuntimeException {
public static final int UNKNOWN_EXCEPTION = 0;
public static final int NETWORK_EXCEPTION = 1;
public static final int TIMEOUT_EXCEPTION = 2;
public static final int BIZ_EXCEPTION = 3;
public static final int FORBIDDEN_EXCEPTION = 4;
public static final int SERIALIZATION_EXCEPTION = 5;
public static final int NO_INVOKER_AVAILABLE_AFTER_FILTER = 6;
public static final int LIMIT_EXCEEDED_EXCEPTION = 7;
public static final int TIMEOUT_TERMINATE = 8;
public static final int REGISTRY_EXCEPTION = 9;
public static final int ROUTER_CACHE_NOT_BUILD = 10;
public static final int METHOD_NOT_FOUND = 11;
public static final int VALIDATION_EXCEPTION = 12;
private static final long serialVersionUID = 7815426752583648734L;
/**
* RpcException cannot be extended, use error code for exception type to keep compatibility
*/
private int code;
public RpcException() {
super();
}
public RpcException(String message, Throwable cause) {
super(message, cause);
}
public RpcException(String message) {
super(message);
}
public RpcException(Throwable cause) {
super(cause);
}
public RpcException(int code) {
super();
this.code = code;
}
public RpcException(int code, String message, Throwable cause) {
super(message, cause);
this.code = code;
}
public RpcException(int code, String message) {
super(message);
this.code = code;
}
public RpcException(int code, Throwable cause) {
super(cause);
this.code = code;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public boolean isBiz() {
return code == BIZ_EXCEPTION;
}
public boolean isForbidden() {
return code == FORBIDDEN_EXCEPTION;
}
public boolean isTimeout() {
return code == TIMEOUT_EXCEPTION;
}
public boolean isNetwork() {
return code == NETWORK_EXCEPTION;
}
public boolean isSerialization() {
return code == SERIALIZATION_EXCEPTION;
}
public boolean isNoInvokerAvailableAfterFilter() {
return code == NO_INVOKER_AVAILABLE_AFTER_FILTER;
}
public boolean isLimitExceed() {
return code == LIMIT_EXCEEDED_EXCEPTION || getCause() instanceof LimitExceededException;
}
public boolean isValidation() {
return code == VALIDATION_EXCEPTION;
}
}