Browse Source

fix: error not nil but not string

Akeit0 6 months ago
parent
commit
f373bb8813
2 changed files with 3 additions and 3 deletions
  1. 1 1
      src/Lua/Exceptions.cs
  2. 2 2
      src/Lua/Standard/BasicLibrary.cs

+ 1 - 1
src/Lua/Exceptions.cs

@@ -346,7 +346,7 @@ public class LuaRuntimeException : Exception, ILuaTracebackBuildable
             {
                 var callStack = Thread.ExceptionTrace.AsSpan();
                 level = Math.Min(level, callStack.Length + 1);
-                callStack = callStack[(level - 1)..];
+                callStack = callStack[..^(level - 1)];
                 if (callStack.IsEmpty)
                 {
                     return ErrorObject.ToString();

+ 2 - 2
src/Lua/Standard/BasicLibrary.cs

@@ -267,9 +267,9 @@ public sealed class BasicLibrary
                     throw new LuaCanceledException(context.Thread, cancellationToken, ex);
                 case LuaRuntimeException luaEx:
                     {
-                        if (luaEx.ErrorObject.Type == LuaValueType.Nil)
+                        if (luaEx.ErrorObject.Type != LuaValueType.String)
                         {
-                            return context.Return(false, LuaValue.Nil);
+                            return context.Return(false, luaEx.ErrorObject);
                         }
                         using var builder = new PooledList<char>();
                         var message = luaEx.MinimalMessage();