private void ThrowOnFailure(jvmtiError result) { if (result == jvmtiError.None) { return; } IntPtr namePtr; string message; if (_rawInterface.GetErrorName(_env, result, out namePtr) == jvmtiError.None) { unsafe { message = ModifiedUTF8Encoding.GetString((byte *)namePtr); } } else { message = result.ToString(); } throw new InvalidOperationException(message); }