Think of it this way.  DeveloperError means there's something wrong with the code.  RuntimeError means there's something wrong with the hardware, network, or data.  Even if the developer wrote the KML himself (most of the time he will just be using KML someone else made), it's still a runtime error because the code is fine.