Video: 25 Dakikada Selenium ve Python Kullanarak Otomatik Instagram Girişi 2024
İki farklı dosyadan veya bir
Tarayıcı
'dan girdi sağlayan bir Java programını ve bir disk dosya. Düzgün temizlediğinizden emin olmak için
close
yöntem çağrılarını
nihayet
maddesine koyarsınız.
import java. io. Dosya;
import java. io. IOException;
import java. util. Tarayıcı;
public class Main {
public static void main (Dizge args []) {
Tarayıcı scan1 = null;
Tarayıcı scan2 = null;
deneyin {
scan1 = yeni Tarayıcı (yeni Dosya ("File1. Txt"));
scan2 = yeni Tarayıcı (yeni Dosya ("Dosya2. Txt"));
// Yararlı şeyler yapın
} catch (IOException e) {
// Hata!
} sonunda {
tarama1. kapat();
SCAN2. kapat();
Sistem. dışarı. println ("Done!");
}
}
}
Teorik olarak, bilgisayar her zaman
taramasını 1 yürütür. close ()
ve
SCAN2. close ()
try
maddesinin yürütülmesi sırasında neyin yanlış gidildiğine bakılmaksızın. Ama bu teori. Gerçekte, başka bir programcı (tabii sizde değilsiniz) kodu
scan1
alanını
try
yan tümcesinin ortasında kapatarak değiştirebilir:
deneyin {
scan1 = yeni Tarayıcı (yeni Dosya ("File1. Txt"));
scan2 = yeni Tarayıcı (yeni Dosya ("Dosya2. Txt"));
// Yararlı şeyler yapın, fakat aynı zamanda …
scan1. kapat();
scan1 = null;
} catch (IOException e) {
// Hata!
} sonunda {
tarama1. kapat();
SCAN2. kapat();
Sistem. dışarı. println ("Done!");
}
Artık gerçek bir çıkmaza sahipsiniz.
Sonunda
tümcinselinde
tarama1
değeri
boş
'dır.
tarama1 çağrısı. close ()
başarısız olur, bu nedenle program bir
NullPointerException
atar ve
scan2 çağrısına erişmeden önce çalışmayı durdurur. close ()
. En kötü koşullarda
scan2
kapanmamıştır ve programınızda
Dosya2 vardır. txt
kilitli kalır, böylece başka hiçbir program dosyayı kullanamaz.
Bir program birden fazla kaynak (birçok dosya, bir veritabanı ve bir dosya veya her neyse) kullandığında,
deneme
ifadelerinin birikimi oldukça karmaşık hale gelir.
Dene
ifadelerini
yakalama
hükümleri ve her türlü çılgın kombinasyon içinde yapabilirsiniz. Ancak Java, sorunu çözmenin daha iyi bir yoludur: Java 7'de (ve Java'nın sonraki sürümlerinde) bir deneme kaynağı deyimi oluşturabilirsiniz. Bu kod size nasıl yapılacağını gösterir.
import java. io. Dosya;
import java. io. IOException;
import java. util. Tarayıcı;
kamu sınıfı NewMain {
public static void main (Dizge args []) {
deneyin (Tarayıcı scan1 = yeni Tarayıcı (yeni Dosya ("Dosya1.
Tarayıcı scan2 = yeni Tarayıcı (new File ("File2.txt"))) {
// Yararlı şeyler yapın
} catch (IOException e) {
// Hata!
}
Bu kodda
tarama1
ve
bildirimleri, scan2
kelimesi
denedikten sonra parantez içinde gösterilir
. Parantez içine alınmış bildirimler,
scan1
ve
scan2
komutlarını 'da >
yan tümcelerini denemek Bir
try
deyiminin parantezinde birkaç kaynak bildirebilirsiniz.Bu işlemi yaptığınızda, Java tüm kaynakları otomatik olarak
try
deyimlerinin yürütülmesinden sonra kapar. isterseniz,
yakalama
hükümleri ve
nihayet
maddesi ekleyebilirsiniz. Her türlü kaynağa (dosya, veritabanı, sunucu bağlantıları ve diğerleri) erişebilir ve bunun bilincinde olarak barışabilirsiniz. Java bağlantıları otomatik olarak keser.
Hayat iyi