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

◆ RaiseContractFailedEvent()

static ? string System.Runtime.CompilerServices.ContractHelper.RaiseContractFailedEvent ( ContractFailureKind failureKind,
string? userMessage,
string? conditionText,
Exception? innerException )
inlinestatic

Definition at line 12 of file ContractHelper.cs.

13 {
14 if (failureKind < ContractFailureKind.Precondition || failureKind > ContractFailureKind.Assume)
15 {
16 throw new ArgumentException(SR.Format(SR.Arg_EnumIllegalVal, failureKind), "failureKind");
17 }
18 string text = "contract failed.";
19 ContractFailedEventArgs contractFailedEventArgs = null;
20 string result;
21 try
22 {
23 text = GetDisplayMessage(failureKind, userMessage, conditionText);
24 EventHandler<ContractFailedEventArgs> internalContractFailed = ContractHelper.InternalContractFailed;
25 if (internalContractFailed != null)
26 {
27 contractFailedEventArgs = new ContractFailedEventArgs(failureKind, text, conditionText, innerException);
28 Delegate[] invocationList = internalContractFailed.GetInvocationList();
29 for (int i = 0; i < invocationList.Length; i++)
30 {
31 EventHandler<ContractFailedEventArgs> eventHandler = (EventHandler<ContractFailedEventArgs>)invocationList[i];
32 try
33 {
34 eventHandler(null, contractFailedEventArgs);
35 }
36 catch (Exception thrownDuringHandler)
37 {
38 contractFailedEventArgs.thrownDuringHandler = thrownDuringHandler;
39 contractFailedEventArgs.SetUnwind();
40 }
41 }
42 if (contractFailedEventArgs.Unwind)
43 {
44 if (innerException == null)
45 {
46 innerException = contractFailedEventArgs.thrownDuringHandler;
47 }
48 throw new ContractException(failureKind, text, userMessage, conditionText, innerException);
49 }
50 }
51 }
52 finally
53 {
54 result = ((contractFailedEventArgs == null || !contractFailedEventArgs.Handled) ? text : null);
55 }
56 return result;
57 }
static string GetDisplayMessage(ContractFailureKind failureKind, string userMessage, string conditionText)

References System.SR.Arg_EnumIllegalVal, System.SR.Format(), System.Runtime.CompilerServices.ContractHelper.GetDisplayMessage(), System.Diagnostics.Contracts.ContractFailedEventArgs.Handled, System.Runtime.CompilerServices.ContractHelper.InternalContractFailed, System.Diagnostics.Contracts.ContractFailedEventArgs.SetUnwind(), System.text, System.Diagnostics.Contracts.ContractFailedEventArgs.thrownDuringHandler, and System.Diagnostics.Contracts.ContractFailedEventArgs.Unwind.

Referenced by System.Diagnostics.Contracts.Contract.ReportFailure().