At this point, it's a try/catch fuckfest; when time permits, I'll make it right