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

Bagaimana java membuang pengecualian yang sesuai untuk abstraksi

PHPz
PHPzke hadapan
2023-04-28 14:40:101475semak imbas

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);
    }
}

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam