2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 package gov.nasa.jpf.vm;
22 * utility wrapper for exception handlers that /would/ handle
23 * a given exception type
25 * <2do> This should be a class hierarchy to properly distinguish between
26 * ordinary catch handlers and UncaughtHandler objects, but so far
29 public class HandlerContext {
30 public enum UncaughtHandlerType { INSTANCE, GROUP, GLOBAL }
33 ClassInfo ciException;
36 ExceptionHandler handler;
38 int uncaughtHandlerRef;
39 UncaughtHandlerType uncaughtHandlerType;
41 HandlerContext (ThreadInfo ti, ClassInfo ciException, StackFrame frame, ExceptionHandler handler) {
43 this.ciException = ciException;
45 this.handler = handler;
48 HandlerContext (ThreadInfo ti, ClassInfo ciException, UncaughtHandlerType uncaughtHandlerType, int uncaughtHandlerRef){
50 this.ciException = ciException;
51 this.uncaughtHandlerType = uncaughtHandlerType;
52 this.uncaughtHandlerRef = uncaughtHandlerRef;
55 public ThreadInfo getThreadInfo(){
59 public StackFrame getFrame () {
63 public ExceptionHandler getHandler () {
67 public boolean isUncaughtHandler(){
68 return uncaughtHandlerType != null;
71 public UncaughtHandlerType getUncaughtHandlerType(){
72 return uncaughtHandlerType;
75 public int getUncaughtHandlerRef(){
76 return uncaughtHandlerRef;