コード例 #1
0
        private static unsafe string GetNativeErrorMessage()
        {
            git_error *error = libgit2.git_error_last();

            if (error == null || error->message == null)
            {
                return("Unknown error in libgit2");
            }
            else
            {
                return(Utf8Converter.FromNative(error->message));
            }
        }
コード例 #2
0
        public static void ThrowIfError(int result, string functionName = null)
        {
            if (result != 0)
            {
                unsafe
                {
                    string mainMessage = functionName is null
                        ? $"libgit2 '{functionName}' returned non-zero value"
                        : "libgit2 returned non-zero value";

                    git_error *error = git_error_last();

                    if (error != null && error->message != null)
                    {
                        string errorMessage = U8StringConverter.ToManaged(error->message);

                        throw new InteropException(mainMessage, result, new Exception(errorMessage));
                    }

                    throw new InteropException(mainMessage, result);
                }
            }
        }