1 //******************************************************************
3 // Copyright 2016 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 package org.iotivity.service.ns.common;
25 * This class provides implementation of exceptions thrown by API's.
28 public class NSException extends Exception {
30 private NSErrorCode errorCode;
32 public NSException(NSErrorCode errorCode, String errMessage) {
33 super(errMessage + " " + errorCode.toString());
34 this.errorCode = errorCode;
37 private NSException(String error, String errMessage) {
38 super(errMessage + " " + error);
39 this.errorCode = NSErrorCode.get(error);
42 public NSErrorCode getErrorCode() {
46 private static void addStackTrace(Throwable throwable, String file,
47 String functionName, int line) {
48 StackTraceElement[] stack = throwable.getStackTrace();
49 StackTraceElement[] newStack = new StackTraceElement[stack.length + 1];
51 System.arraycopy(stack, 0, newStack, 1, stack.length);
52 newStack[0] = new StackTraceElement("<native>", functionName, file,
54 throwable.setStackTrace(newStack);
57 private void setNativeExceptionLocation(String file, String functionName,
59 NSException.addStackTrace(this, file, functionName, line);