Why cannot run() of Runnable throw checked Exceptions?
According to section 6.3.2 of JCIP : Runnable is a fairly limiting abstraction; run can not return a value or throw checked exception . run() can not return a value since its return type is void but why can not it throw a checked exception ? Peter Lawrey It cannot throw a checked exception because it wasn't declared as throwing a checked exception from the first version and it is too dangerous to change it. Originally Runnable was only used in a wrapped Thread , and it was assumed the developer would want to catch all checked exceptions and handle them rather than logging them to System.err .