Descriptive Problem Summary:
I receive the following error in the log:
runtime error: Exception thrown: Object \[0x3000001]\'s bla var... (/exception)
I'm actually supposed to see this:
runtime error: Exception thrown: Object \[0x3000001]\'s bla variable contains a reference to turf 50,50,1, but it doesn't exist in this chunk. (/exception)
Apparently when you throw an exception the message you provide is truncated??
Can this restriction be removed? I can't debug my code if half the error message is not being logged.
Workarounds:
None. I tried catching the exception using /world/Error, but apparently the error message is truncated in the exception object itself.
ID:1957927
Oct 10 2015, 8:44 am
|
|||||||||||||
Resolved
| |||||||||||||
This appears to only occur when the exception is caught globally (in /world/Error or by the default behavior), so it may be close to that runtime error suppression bit I mentioned.
|
Can you post an example of the code causing the error, and how you are catching it?
|
In response to Super Saiyan X
|
|
Super Saiyan X wrote:
Can you post an example of the code causing the error, and how you are catching it? By throwing an exception using throw and then catching it globally in /world/Error. NullQuery wrote: I tried catching the exception using /world/Error, but apparently the error message is truncated in the exception object itself. NullQuery wrote: This appears to only occur when the exception is caught globally (in /world/Error or by the default behavior) |
In response to NullQuery
|
|
You can disable the "suppression to prevent overload" by running DD with -verbose on the command line.
|
A workaround for the exception name being truncated is to use CRASH() function with a string, instead of the throw instruction with an exception object. This will still create an exception object in world/Error.
|
Unfortunately this won't work in my case, as I'm throwing the exception in an existing catch block. :(
I still hope this bug is be resolved in the next version. It sounds to me that the message is deliberately being truncated somewhere, and all that needs to be done is to prevent this. |
Running 509.1313, this bug still occurs. Already this is suppressing error messages in my projects. I need to know the full contents!
Can this be prioritized? To me this seems like an oversight that could be quickly fixed by increasing the length. |
Yes, I agree with this wholeheartedly. I gave detailed messages in my exceptions to make it easier to debug my most recent project, and the suppression of these errors and truncating the messages made much of that moot, and thus debugging more difficult.
|
running DD with -verbose will remove the limit on the number of runtimes
What I did was replaced all shortcuts to DD with a version that adds "" -verbose to the end of the shortcut path. so that any time I launch DD, it has this enabled. How ever, i can confirm that -verbose does not remove the size limit of the name of exceptions, and it should. |
Lummox JR resolved issue with message:
Exceptions raised by throw() will no longer use an internal 30-character limit on string length. |
IIRC there's also a vague limit on the amount of runtime errors you see before they're "suppressed to prevent overload". This kind of stuff should also be looked at -- if the developer wants to crash their server let them do that.
Kudos on the implementation of exceptions in the first place though. This will help to make my code significantly error-proof (as far as the end-user is concerned anyway).