That's usually not the full error message, and you can still easily find the number's meaning by opening the man page of wathever piece of software terminated with that exit code.
Depends really. If it's some kind of runtime or VM you pretty much have zero idea what the exit code was. Python, CLR, JVM tend to leave you in this mire.
Not necessarily. Most of the 139's I get these days are SIGSEGV related. Obviously if you annoy the MMU at that level it's not going to get given an opportunity to write anything useful to stderr.