actually, for error handling, panic is a lot more like exceptions than exit. much like java, panic acts like throw, and defer/recovery like try/catch. and you can use it like that in the depths of your library, recovering from panics in your exported functions.