এই সাইটে অন্য উত্তরের জন্য কোড লেখার সময় আমি এই বিশেষত্বটি দেখতে পেয়েছি:
static void testSneaky() {
final Exception e = new Exception();
sneakyThrow(e); //no problems here
nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception
}
@SuppressWarnings("unchecked")
static <T extends Throwable> void sneakyThrow(Throwable t) throws T {
throw (T) t;
}
static <T extends Throwable> void nonSneakyThrow(T t) throws T {
throw t;
}
প্রথমে, আমি সংক্ষেপকারীর কাছে sneakyThrow
কল ঠিক আছে কেন আমি বেশ বিভ্রান্ত । T
কোনও চেকড ব্যতিক্রম ব্যতীত কোথাও উল্লেখ না থাকলে এটি কোন সম্ভাব্য প্রকারের জন্য অনুধাবন করেছিল ?
দ্বিতীয়ত, গ্রহণ করে যে এটি কাজ করে, তাহলে কেন সংকলক nonSneakyThrow
কলটিতে অভিযোগ করবে ? এগুলি দেখতে অনেকটা একই রকম।
sneakyThrow
কলটি বোঝানো উচিত ।throws T
ফর্মগুলির