Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Add()

ExceptionRegionEncoder System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder.Add ( ExceptionRegionKind kind,
int tryOffset,
int tryLength,
int handlerOffset,
int handlerLength,
EntityHandle catchType = default(EntityHandle),
int filterOffset = 0 )
inline

Definition at line 101 of file ExceptionRegionEncoder.cs.

102 {
103 if (Builder == null)
104 {
105 Throw.InvalidOperation(System.SR.MethodHasNoExceptionRegions);
106 }
107 if (HasSmallFormat)
108 {
109 if ((ushort)tryOffset != tryOffset)
110 {
111 Throw.ArgumentOutOfRange("tryOffset");
112 }
113 if ((byte)tryLength != tryLength)
114 {
115 Throw.ArgumentOutOfRange("tryLength");
116 }
117 if ((ushort)handlerOffset != handlerOffset)
118 {
119 Throw.ArgumentOutOfRange("handlerOffset");
120 }
121 if ((byte)handlerLength != handlerLength)
122 {
123 Throw.ArgumentOutOfRange("handlerLength");
124 }
125 }
126 else
127 {
128 if (tryOffset < 0)
129 {
130 Throw.ArgumentOutOfRange("tryOffset");
131 }
132 if (tryLength < 0)
133 {
134 Throw.ArgumentOutOfRange("tryLength");
135 }
136 if (handlerOffset < 0)
137 {
138 Throw.ArgumentOutOfRange("handlerOffset");
139 }
140 if (handlerLength < 0)
141 {
142 Throw.ArgumentOutOfRange("handlerLength");
143 }
144 }
145 int catchTokenOrOffset;
146 switch (kind)
147 {
148 case ExceptionRegionKind.Catch:
149 if (!IsValidCatchTypeHandle(catchType))
150 {
151 Throw.InvalidArgument_Handle("catchType");
152 }
153 catchTokenOrOffset = MetadataTokens.GetToken(catchType);
154 break;
155 case ExceptionRegionKind.Filter:
156 if (filterOffset < 0)
157 {
158 Throw.ArgumentOutOfRange("filterOffset");
159 }
160 catchTokenOrOffset = filterOffset;
161 break;
162 case ExceptionRegionKind.Finally:
163 case ExceptionRegionKind.Fault:
164 catchTokenOrOffset = 0;
165 break;
166 default:
167 throw new ArgumentOutOfRangeException("kind");
168 }
169 AddUnchecked(kind, tryOffset, tryLength, handlerOffset, handlerLength, catchTokenOrOffset);
170 return this;
171 }
static string MethodHasNoExceptionRegions
Definition SR.cs:238
Definition SR.cs:7
void AddUnchecked(ExceptionRegionKind kind, int tryOffset, int tryLength, int handlerOffset, int handlerLength, int catchTokenOrOffset)

References System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder.AddUnchecked(), System.Reflection.Throw.ArgumentOutOfRange(), System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder.Builder, System.Reflection.Metadata.Ecma335.MetadataTokens.GetToken(), System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder.HasSmallFormat, System.Reflection.Throw.InvalidArgument_Handle(), System.Reflection.Throw.InvalidOperation(), System.Reflection.Metadata.Ecma335.ExceptionRegionEncoder.IsValidCatchTypeHandle(), and System.SR.MethodHasNoExceptionRegions.