b6b764966598de47d2e661a97113500ab8bffd32
[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 public class NSException extends Exception
24 {
25     private NSErrorCode errorCode;
26
27     public NSException(NSErrorCode errorCode, String errMessage)
28     {
29         super(errMessage + " " + errorCode.toString());
30         this.errorCode = errorCode;
31     }
32
33     private NSException(String error, String errMessage)
34     {
35         super(errMessage + " " + error);
36         this.errorCode = NSErrorCode.get(error);
37     }
38
39     public NSErrorCode getErrorCode()
40     {
41         return errorCode;
42     }
43
44     private static void addStackTrace(Throwable throwable,
45                                       String file,
46                                       String functionName,
47                                       int line)
48     {
49         StackTraceElement[] stack = throwable.getStackTrace();
50         StackTraceElement[] newStack = new StackTraceElement[stack.length + 1];
51
52         System.arraycopy(stack, 0, newStack, 1, stack.length);
53         newStack[0] = new StackTraceElement("<native>", functionName, file, line);
54         throwable.setStackTrace(newStack);
55     }
56
57     private void setNativeExceptionLocation(String file, String functionName, int line)
58     {
59         NSException.addStackTrace(this, file, functionName, line);
60     }
61 }