replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / service / notification / android / notification-service / src / main / java / org / iotivity / service / ns / common / NSException.java
1 //******************************************************************
2 //
3 // Copyright 2016 Samsung Electronics All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
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
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
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.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 package org.iotivity.service.ns.common;
22
23 /**
24  *
25  * This class provides implementation of exceptions thrown by API's.
26  *
27  */
28 public class NSException extends Exception {
29
30     private NSErrorCode errorCode;
31
32     public NSException(NSErrorCode errorCode, String errMessage) {
33         super(errMessage + " " + errorCode.toString());
34         this.errorCode = errorCode;
35     }
36
37     private NSException(String error, String errMessage) {
38         super(errMessage + " " + error);
39         this.errorCode = NSErrorCode.get(error);
40     }
41
42     public NSErrorCode getErrorCode() {
43         return errorCode;
44     }
45
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];
50
51         System.arraycopy(stack, 0, newStack, 1, stack.length);
52         newStack[0] = new StackTraceElement("<native>", functionName, file,
53                 line);
54         throwable.setStackTrace(newStack);
55     }
56
57     private void setNativeExceptionLocation(String file, String functionName,
58             int line) {
59         NSException.addStackTrace(this, file, functionName, line);
60     }
61 }