[ Pobierz całość w formacie PDF ]
.out.println("**Przetwarzanie b³êdu**\n" +" Wiersz: " +exception.getLineNumber() + "\n" +" URI: " +exception.getSystemId() + "\n" +" Komunikat: " +exception.getMessage());throw new SAXException("Napotkano b³¹d");}B³êdy krytyczneB³êdy krytyczne to te, które wymuszaj¹ zatrzymanie dzia³ania parsera.Zazwyczajwynikaj¹ z nie­po­prawnego sformatowania dokumentu i ich pojawienie siêoznacza, ¿e albo dalsze przetwarzanie nie ma sensu, albo jest technicznieniemo¿liwe.Procedura obs³ugi b³êdu powinna niemal zawsze poinfor­mo­waæu¿ytkownika lub administratora o wyst¹pieniu takiego b³êdu; pozostawienieapli­kacji samej sobie mo¿e groziæ ca³kowitym jej zawieszeniem.W naszymprzyk³adzie bêdziemy emu­lowali zachowanie dwóch pozosta³ych metod i zatrzymamyprzetwarzanie, wyœwietlaj¹c ko­mu­nikat o b³êdzie na ekranie:/**** Tutaj komunikujemy, ¿e nast¹pi³ b³¹d krytyczny; oznacza to, ¿e* z³amano regu³ê w ten sposób, ¿e dalsze przetwarzanie* nie jest mo¿liwe albo jest bezcelowe.*** @param exception SAXParseException -- wyj¹tek, który nast¹pi³.* @throws SAXException jeœli coœ pójdzie nie tak.*/public void fatalError(SAXParseException exception)throws SAXException {System.out.println("**Przetwarzanie b³êdu krytycznego**\n" +" Wiersz: " +exception.getLineNumber() + "\n" +" URI: " +exception.getSystemId() + "\n" +" Komunikat: " +exception.getMessage());throw new SAXException("Napotkano b³¹d krytyczny");}Po zakodowaniu procedury obs³ugi tego trzeciego typu b³êdu powinno byæ mo¿liweprze­kom­pi­lo­wa­nie pliku Ÿród³owego i powtórne uruchomienie go na naszymdokumencie XML.Uzyskany wynik nie powinien ró¿niæ siê od poprzedniego, bodokument XML nie zawiera b³êdów, o których aplikacja mog³aby poinformowaæ.Wkolejnych podrozdzia³ach zostan¹ omówione b³êdy w do­ku­mentach XML, w którychnie jest wykonywane sprawdzanie poprawnoœci.Rozbijanie danychSkoro posiadamy ju¿ procedury obs³ugi b³êdów, to warto zobaczyæ, jak onedzia³aj¹.Jak ju¿ to by­³o wspomniane, wiêkszoœæ ostrze¿eñ i b³êdówniekrytycznych zwi¹zanych jest z poprawnoœci¹ sk³adni dokumentu — zagadnieniate zostan¹ omówione w kilku nastêpnych rozdzia³ach.Jest je­dnak jeden b³¹dniekrytyczny, który pojawia siê w dokumentach XML nie sprawdzonych pod wzglêdempoprawnoœci.Chodzi tutaj o wersjê jêzyka XML zg³aszan¹ przez dokument.Abyzoba­czyæ, jak ten b³¹d jest zg³aszany, zmieñmy nasz przyk³adowy dokument wnastêpuj¹cy sposób:Teraz nale¿y uruchomiæ przyk³adowy program na takim zmienionym pliku XML.Wynikpowi­nien byæ zbli¿ony do przedstawionego w przyk³adzie 3.4.Przyk³ad 3.4.Program SAXParserDemo wyœwietlaj¹cy b³¹dD:\prod\JavaXML>java SAXParserDemo D:\prod\JavaXML\contents.xmlPrzetwarzanie pliku XML: contents.xml* setDocumentLocator() zosta³a wywo³anaRozpoczyna siê przetwarzanie.**Przetwarzanie b³êdu**Wiersz: 1URI: file:/D:/prod/JavaXML/contents/contents.xmlKomunikat: XML version "1.2" is not supported.B³¹d w przetwarzaniu: Napotkano b³¹dKiedy parser XML operuje na dokumencie, którego wersja jêzyka XML zosta³aokreœlona jako nowsza ni¿ te obs³ugiwane przez parser, zg³aszany jest b³¹dniekrytyczny, zgodnie ze specyfikacj¹ XML 1.W ten sposób aplikacja zostajepoinformowana o tym, ¿e nowe funkcje, które mog³y zostaæ u¿yte w dokumencie,nie musz¹ byæ rozpoznawane przez parser w tej wersji.Przetwarzanie mo¿e byækontynuowane, a wiêc taki b³¹d nie jest postrzegany jako krytyczny.Jednak¿emo¿e on mieæ istotny wp³yw na dokument (np.nowa sk³adnia mo¿e powodowaæ dalszeb³êdy), a wiêc ma wy¿sz¹ rangê ni¿ ostrze¿enie.To dlatego wywo³ywana jestmetoda error(), powoduj¹ca wys³a­nie komunikatu informuj¹cego o b³êdzie izatrzymanie przetwarzania w naszym przyk³adowym programie.Wszystkie inne istotne ostrze¿enia bêd¹ omawiane w nastêpnych dwóchrozdzia³ach; wci¹¿ istnie­j¹ jednak b³êdy krytyczne, które mog¹ siê pojawiaæ wdokumencie nie sprawdzonym pod k¹tem poprawnoœci.S¹ one zwi¹zane zniepoprawnym formatowaniem dokumentu.Parsery XML nie po­tra­fi¹ naprawiaætakich dokumentów, a wiêc b³¹d w sk³adni powoduje zatrzymanie procesuprze­twarzania.Najprostszym sposobem demonstracji tego zagadnienia jestwprowadzenie b³êdów do dokumentu XML.Ponownie zmieñmy deklaracjê wersji na 1.0i wprowadŸmy nastêpuj¹ce zmiany w naszym dokumencie:Java i XMLTaki dokument nie jest poprawnie sformatowany.Uruchamiamy programSAXParserDemo na tak zmodyfikowanym pliku.Wynik przestawiony jest wprzyk³adzie 3.5.Przyk³ad 3.5.Program SAXParserDemo wyœwietlaj¹cy b³¹d krytycznyD:\prod\JavaXML>java SAXParserDemo D:\prod\JavaXML\contents.xmlPrzetwarzanie pliku XML: contents [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • rurakamil.xlx.pl
  •