lprun6 not setting %errorlevel% on unhandled exception like linqpad5 lprun?
I know this had come up during linqpad5 in this thread but this seems to be a different issue AFAICT.
As with the previous thread, calling Environment.Exit(1); is a viable workaround but I wanted to understand if I was doing something wrong here or if it's an intentional change in linqpad6 behavior or just a regression.
lprun is linqpad5 Version=5.40.00(AnyCPU)
lprun6 is linqpad6 Version=6.7.5
C:\temp>type throw.linq void Main() { throw new Exception("foo"); } C:\temp>lprun -lang=p throw.linq Exception: foo at UserQuery.Main() in C:\temp\throw.linq:line 3 at LINQPad.ExecutionModel.ClrQueryRunner.Run() at LINQPad.ExecutionModel.Server.RunQuery(QueryRunner runner) C:\temp>echo %errorlevel% 1 C:\temp>lprun6 -lang=p throw.linq Exception: foo at UserQuery.Main() in C:\Users\james.manning\AppData\Local\Temp\LINQPad6\_gfupjvto\ydhxbq\LINQPadQuery:line 3 at LINQPad.ExecutionModel.ClrQueryRunner.Run() at LINQPad.ExecutionModel.Server.RunQuery(QueryRunner runner) C:\temp>echo %errorlevel% 0
Comments
There seems to be a separate but potentially related issue with int-returning Main? lprun6 prints out the return value instead of changing the exit code?
Both of these issues should have been fixed in the last beta - let me know.
@JoeAlbahari might be PEBCAK but AFAICT the exit code still isn't getting set correctly? In the case of int Main, it's not printing the returned value any longer, so that's good. I just downloaded the beta about an hour ago.
As a sanity check, I ran it with linqpad5 again and it seemed to do the right thing.
Looks like the fix didn't make that beta. There will be another release very soon.