join: intelligent error printing for IO exceptions