Jacek Rumiński - Język JAVA - Rozdział 8
Na zakończenie tej sekcji warto przedstawić w skrócie zagadnienia związane z wyjątkami. Wyjątki mogą pojawić się w różnych okolicznościach w pracy z metodami rodzimymi np. przy braku wzywanej metody, przy braku wzywanego pola, przy złym argumencie, itp. JNI dostarcza klika funkcji do obsługi zdarzeń w kodzie funkcji. Podstawowe funkcje to ExceptionOccurred{), ExceptionDescribe{) i ExceptionClear{). Pierwsza funkcja bada czy wystąpił wyjątek; jeśli tak to zwraca wartość logiczną odpowiadającą prawdzie. Wówczas można w bloku instrukcji warunkowej zawrzeć pozostałe dwie funkcje (wysłanie informacji o wyjątku na ekran, oraz wyczyszczenie wyjątku). Dodatkowo można wywołać wyjątek, który zostanie zwrócony do kody Javy, gdzie należy go obsłużyć. Można to zrobić za pomocą funkcji Throw(jthrowable o) lub ThrowNew(jclass, const char *).
Należy pamiętać również o tym, że JNI umożliwia korzystanie z Maszyny Wirtualnej w ramach aplikacji rodzimej. W tworzeniu takiej aplikacji zanim wywoływane będą metody i pola (tak jak to ukazano do tej pory) konieczne jest wywołanie Maszyny Wirtualnej Javy oraz uzyskanie obiektu klasy, np.:
JDK1_1 InitArgs vm;
JavaVM *jvm;
JNIErw *env; jclass c;
vm.version=0x00010001;
//określenie wersji Maszyny Wirtualnej jako 1.1.2 i wyższych
JNI_GetDefaultJavaVMInitArgs(&vm);
jint test = JNI_CreateJavaVM(&jvm,&env,&vm);
c=(env)->FindClass(”NazwaKlasy”);
II np. GetStaticfMethod,Field}lnt(c,...) i tak dalej
Tworzenie programów działających w sieciach komputerowych było jednym z celów stworzenia języka Java. Możliwości aplikacji sieciowych tworzonych za pomocą Javy są różne. Podstawowe, proste rozwiązania wykorzystujące mechanizmy wysokiego poziomu pracy w sieci dostarczane są przez podstawowe klasy połączeń (adresowania) jak InetAddress i URL
Klasa InetAddress opisuje adres komputera w sieci poprzez nazwę/domenę, np. www-med.eti.pg.gda.pl oraz poprzez numer IP, np. 153.19.51.66. Istnieje szereg metod statycznych klasy InetAddress wykorzystywanych do tworzenia obiektu klasy, brak jest bowiem konstruktorów. Podstawowe metody wykorzystywane do tworzenia obiektów to:
InetAddress. getByName(String nazwa),
8-11