2016-06-02 19 views
6

yılında Try catch Yuvarlak parantez/parantezler() Nedir: şöyle bilgime olarak biz <code>try catch</code> kullanmak gereğince Java

try { 
    //Some code that may generate exception 
} 
catch(Exception ex) { 
} 
    //handle exception 
finally { 
    //close any open resources etc. 
} 

Ama

bir kodda ben

try(
    ByteArrayOutputStream byteArrayStreamResponse = new ByteArrayOutputStream();     
    HSLFSlideShow pptSlideShow = new HSLFSlideShow(
             new HSLFSlideShowImpl(
Thread.currentThread().getContextClassLoader() 
     .getResourceAsStream(Constants.PPT_TEMPLATE_FILE_NAME) 
            )); 
){ 
} 
catch (Exception ex) { 
     //handel exception 
} 
finally { 
     //close any open resource 
} 

Ben şu bulundu Bu parantezleri neden denedikten sonra () anlayamıyorum.

Kullanımı nedir? Java 1.7'de yeni mi? Orada yazabileceğim ne tür bir sözdizimi?

Lütfen bazı API belgelerine de bakın.

+0

Olası kopyalar (http://stackoverflow.com/questions/17650970/am-i-using-the-java-7-try-with -resources-doğru) –

+0

Ne olduğunu soruyorsunuz, sadece ne olduğuyla ilgili bir soruya, aynı zamanda nasıl doğru bir şekilde kullanılacağına da sorularım var. –

cevap

13

Java 1.7'de yeni olan Kaynaklar sözdizimi ile denemek. Kapalı olabilecek tüm kaynakları beyan etmek için kullanılır. İşte resmi belgelerin bağlantısı. Bu örnekte

static String readFirstLineFromFile(String path) throws IOException { 
try (BufferedReader br = 
       new BufferedReader(new FileReader(path))) { 
    return br.readLine(); 
} 
} 

https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

try-ile-kaynaklar ifadesinde bildirilen kaynak bir BufferedReader olduğunu. Beyanname ifadesi, try anahtar kelimesinden hemen sonra parantez içinde görünür. Java SE 7 ve sonraki sürümlerinde bulunan BufferedReader sınıfı, java.lang.AutoCloseable arabirimini uygular. BufferedReader örneği, try-with-resource deyiminde bildirildiğinden, try deyiminin normal olarak mı yoksa aniden mi (BuffoverReader.readLine bir IOException atanması yönteminin bir sonucu olarak) bitip bitmediğine bakılmaksızın kapatılacaktır.

[Ben doğru Java 7 Try-ile-kaynakları kullanarak muyum] arasında
+1

Anlaşılan belgelerinizi okuduktan sonra şimdi anladığım kadarıyla, bu işlemi yapmak için, kaynak kapatmak için istisnayı ele almak için başka bir denemeye ihtiyacımız olduğu yerde nihayet atmaya çalışalım. Güzel, bazı zamanlarda ben sorunu ele almak için finali içinde başka bir deneyin yakaladığınızda kötü hissettim. –

İlgili konular