Rumah > Java > javaTutorial > Bagaimana java membuang pengecualian yang sesuai untuk abstraksi

Bagaimana java membuang pengecualian yang sesuai untuk abstraksi

PHPz
Lepaskan: 2023-04-28 14:40:10
ke hadapan
1512 orang telah melayarinya

Pengecualian lontar yang sesuai untuk abstraksi

Pengecualian yang dilemparkan hendaklah berkaitan dengan tugas yang dilakukan oleh pemanggil. Item ini memperkenalkan penukaran pengecualian (menangkap pengecualian dan melontar satu lagi) dan rantaian pengecualian (membungkus pengecualian dalam pengecualian baharu untuk mengekalkan rantai sebab pengecualian).

private void serializeBillingDetails(BillingResult billingResult,
        BillingDetailsType billingDetails) {
 
    try {
        final JAXBContext context = JAXBContext
                .newInstance(BillingdataType.class);
        final ByteArrayOutputStream out = new ByteArrayOutputStream();
        final Marshaller marshaller = context.createMarshaller();
        marshaller.setProperty("jaxb.formatted.output", Boolean.FALSE);
        final BillingdataType billingdataType = new BillingdataType();
        billingdataType.getBillingDetails().add(billingDetails);
        marshaller.marshal(factory.createBillingdata(billingdataType), out);
        final String xml = new String(out.toByteArray(), "UTF-8");
        billingResult.setResultXML(xml.substring(
                xml.indexOf("<Billingdata>") + 13,
                xml.indexOf("</Billingdata>")).trim());
        billingResult.setGrossAmount(billingDetails.getOverallCosts()
                .getGrossAmount());
        billingResult.setNetAmount(billingDetails.getOverallCosts()
                .getNetAmount());
    } catch (JAXBException | UnsupportedEncodingException ex) {
        throw new BillingRunFailed(ex);
    }
}
Salin selepas log masuk

Kaedah di atas menangkap JAXBException  dan UnsupportedEncodingException dan melemparkan semula pengecualian baharu yang sesuai dengan tahap abstraksi kaedah. Pengecualian BillingRunFailed baharu membungkus pengecualian asal. Jadi ini adalah contoh yang baik bagi rantaian pengecualian. Faedah rantaian pengecualian ialah ia mengekalkan pengecualian peringkat rendah yang boleh membantu dalam masalah penyahpepijatan.

Atas ialah kandungan terperinci Bagaimana java membuang pengecualian yang sesuai untuk abstraksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan