RuntimeError
Constructs an exception object that is thrown due to an error that can occur at runtime, e.g., out of memory, could not compile shader, etc. If a function may throw this exception, the calling code should be prepared to catch it.
On the other hand, a DeveloperError indicates an exception due to a developer error, e.g., invalid argument, that usually indicates a bug in the calling code.