-
Notifications
You must be signed in to change notification settings - Fork 0
/
ExceptionThrower.cs
37 lines (36 loc) · 1.65 KB
/
ExceptionThrower.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
namespace Gee.External.Capstone {
/// <summary>
/// Exception Thrower.
/// </summary>
internal static class ExceptionThrower {
/// <summary>
/// Throw an Exception.
/// </summary>
/// <param name="errorCode">
/// An error code.
/// </param>
internal static void ThrowOnOpen(DisassembleErrorCode errorCode) {
switch (errorCode) {
case DisassembleErrorCode.Ok:
break;
case DisassembleErrorCode.OutOfMemory:
throw new OutOfMemoryException("Out of memory.");
case DisassembleErrorCode.UnsupportedArchitecture:
throw new ArgumentException("Unsupported architecture.");
case DisassembleErrorCode.InvalidHandle:
throw new ArgumentException("Invalid handle.");
case DisassembleErrorCode.InvalidCapstone:
throw new ArgumentException("Invalid handle.");
case DisassembleErrorCode.UnsupportedMode:
throw new ArgumentException("Unsupported mode.");
case DisassembleErrorCode.UnsupportedOption:
throw new ArgumentException("Unsupported option.");
case DisassembleErrorCode.UnavailableInstructionDetail:
throw new InvalidOperationException("Unavailable disassemble instruction detail.");
case DisassembleErrorCode.UninitializedDynamicMemoryManagement:
throw new InvalidOperationException("Uninitialized dynamic memory management.");
}
}
}
}