Move exception raising to low-level for nicer printing, switch getData into higher layer