Free cookie consent management tool by TermsFeed Policy Generator

source: branches/2893_BNLR/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Mono.Cecil/Mono.Cecil.Cil/ExceptionHandler.cs

Last change on this file was 11700, checked in by jkarder, 10 years ago

#2077: created branch and added first version

File size: 2.3 KB
Line 
1//
2// ExceptionHandler.cs
3//
4// Author:
5//   Jb Evain (jbevain@gmail.com)
6//
7// Copyright (c) 2008 - 2011 Jb Evain
8//
9// Permission is hereby granted, free of charge, to any person obtaining
10// a copy of this software and associated documentation files (the
11// "Software"), to deal in the Software without restriction, including
12// without limitation the rights to use, copy, modify, merge, publish,
13// distribute, sublicense, and/or sell copies of the Software, and to
14// permit persons to whom the Software is furnished to do so, subject to
15// the following conditions:
16//
17// The above copyright notice and this permission notice shall be
18// included in all copies or substantial portions of the Software.
19//
20// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27//
28
29namespace Mono.Cecil.Cil {
30
31  public enum ExceptionHandlerType {
32    Catch = 0,
33    Filter = 1,
34    Finally = 2,
35    Fault = 4,
36  }
37
38  public sealed class ExceptionHandler {
39
40    Instruction try_start;
41    Instruction try_end;
42    Instruction filter_start;
43    Instruction handler_start;
44    Instruction handler_end;
45
46    TypeReference catch_type;
47    ExceptionHandlerType handler_type;
48
49    public Instruction TryStart {
50      get { return try_start; }
51      set { try_start = value; }
52    }
53
54    public Instruction TryEnd {
55      get { return try_end; }
56      set { try_end = value; }
57    }
58
59    public Instruction FilterStart {
60      get { return filter_start; }
61      set { filter_start = value; }
62    }
63
64    public Instruction HandlerStart {
65      get { return handler_start; }
66      set { handler_start = value; }
67    }
68
69    public Instruction HandlerEnd {
70      get { return handler_end; }
71      set { handler_end = value; }
72    }
73
74    public TypeReference CatchType {
75      get { return catch_type; }
76      set { catch_type = value; }
77    }
78
79    public ExceptionHandlerType HandlerType {
80      get { return handler_type; }
81      set { handler_type = value; }
82    }
83
84    public ExceptionHandler (ExceptionHandlerType handlerType)
85    {
86      this.handler_type = handlerType;
87    }
88  }
89}
Note: See TracBrowser for help on using the repository browser.