compile time error vs runtime error