Yes, that’s right - the Anvil client/server exception system assumes that all exceptions have a single string in their args
. Exceptions do not have the full range of expressiveness found in normal client-server communications.
If a server call throws an exception type you haven’t registered, you’ll just get an undifferentiated AnvilWrappedError
. (This is true on the Uplink, same as on the server or client. As you correctly guess, it’s the name passed to _register_exception_type()
that’s used to match them up.) Slightly awkward corners like this are why the function name still starts with an underscore