Yığın izleme/istisna bilgilerini eklemek istiyorum. Temelde ben gerçekten gibi bugün itibariyle böyle bir şey, varBir istisnayla ilgili bilgi ekleme
: Hala orijinal yığın yerken, o istisnayı yakalamak ve ona ek bilgi eklemek istiyorum Ancak
Exception in thread "main" java.lang.ArithmeticException:/by zero
at com.so.main(SO.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
iz.
Örneğin, ben o olsun isterim:
Exception in thread "main" CustomException:/by zero (you tried to divide 42 by 0)
at com.so.main(SO.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
Böylece temelde ekleyerek ArithmeticException ve rethrow, diyelim ki, bir customException (yakalamak istiyorum "0 olarak vasıtasıyla 42 bölmek için çalıştı" Bu örnekte, stacktrace'i orijinal ArithmeticException'dan hala korurken.
Java'da bunu yapmanın doğru yolu nedir?
try {
....
} catch (ArithmeticException e) {
throw new CustomException("You tried to divide " + x + " by " + y, e);
}
Onu fırlatıp atmadıkça, istisnanın özelliklerini nasıl bilebilirdiniz? – Falmarri
@Falmarri: Öznitelikleri bilmiyorum, ancak yöntem parametreleri gibi ek bilgiler ekleyebilirim. Sorumun sonunda bir örnek ekledim. – NoozNooz42
Genellikle bu bilgi sadece hata ayıklama için kullanışlıdır. Programınızı ayıklamak ve istisna üzerine bir kesme noktası yerleştirmek için hata ayıklayıcısını kullanmayı da deneyebilirsiniz. İstisna atıldığında, ona neden olan koşulları göreceksiniz. –