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;
23 public class NSException extends Exception
25 private NSErrorCode errorCode;
27 public NSException(NSErrorCode errorCode, String errMessage)
29 super(errMessage + " " + errorCode.toString());
30 this.errorCode = errorCode;
33 private NSException(String error, String errMessage)
35 super(errMessage + " " + error);
36 this.errorCode = NSErrorCode.get(error);
39 public NSErrorCode getErrorCode()
44 private static void addStackTrace(Throwable throwable,
49 StackTraceElement[] stack = throwable.getStackTrace();
50 StackTraceElement[] newStack = new StackTraceElement[stack.length + 1];
52 System.arraycopy(stack, 0, newStack, 1, stack.length);
53 newStack[0] = new StackTraceElement("<native>", functionName, file, line);
54 throwable.setStackTrace(newStack);
57 private void setNativeExceptionLocation(String file, String functionName, int line)
59 NSException.addStackTrace(this, file, functionName, line);