개인 재정 Java try 문을 리소스 - 인형과 함께 사용하는 방법

Java try 문을 리소스 - 인형과 함께 사용하는 방법

비디오: 마인크래프트 서버강좌 #12편 :: 자주하는 질문과 오류들 2024

비디오: 마인크래프트 서버강좌 #12편 :: 자주하는 질문과 오류들 2024
Anonim

두 개의 서로 다른 파일 또는 Scanner 와 디스크에서 입력을받는 Java 프로그램을 상상해보십시오. 파일. 제대로 정리하려면 닫기 절을 finally 절에 넣습니다.

import java. io. 파일;

import java. io. IOException;

import java. util. 스캐너;

public class Main {

public static void main (String args []) {

스캐너 scan1 = null;

스캐너 scan2 = null;

시도 {

scan1 = 새 스캐너 (새 파일 ("File1. txt"));

scan2 = 새 스캐너 (새 파일 ("File2. txt"));

// 유용한 일들

} catch (IOException e) {

-

// 죄송합니다!

} finally {

scan1. 닫기();

스캔 2. 닫기();

시스템. 아웃. println ("완료!");

}

}

}

이론적으로 컴퓨터는 항상 scan1을 실행합니다. close () scan2. close () try 절을 실행하는 동안 무엇이 잘못 될지라도. 그러나 그것은 이론입니다. 실제로, 다른 프로그래머 (물론 아닙니다)는 try 절의 중간에서 scan1 를 닫음으로써 코드를 수정할 수 있습니다.

시도 {

scan1 = 새 스캐너 (새 파일 ("File1. txt"));

scan2 = 새 스캐너 (새 파일 ("File2. txt"));

// 유용한 정보를 제공하지만 …

scan1. 닫기();

scan1 = null;

} catch (IOException e) {

// 죄송합니다!

} finally {

scan1. 닫기();

스캔 2. 닫기();

시스템. 아웃. println ("완료!");

}

이제 당신은 참으로 곤경에 빠집니다.

finally 절에서 scan1 의 값은 null 입니다. scan1에 대한 호출입니다. close () 가 실패하기 때문에 프로그램은 scan2 호출에 도달하기 전에 NullPointerException 를 throw하고 실행을 중지합니다. close () . 최악의 상황에서는 scan2 가 닫히지 않고 프로그램에 File2가 있습니다. txt 는 잠겨있어 다른 프로그램이 파일을 사용할 수 없습니다. try

try 구문의 작성이 복잡해집니다. catch 절 및 모든 종류의 미친 조합 내에서 try 문을 만들 수 있습니다. 그러나 Java는 문제를 해결할 수있는 더 좋은 방법을 가지고 있습니다. Java 7 (및 이후 Java 버전)에서는 try-with-resources 문을 작성할 수 있습니다. 이 코드는 방법을 보여줍니다.

import java. io. 파일;

import java. io. IOException;

import java. util. 스캐너;

public class NewMain { public static void main (String args []) {

시도 (스캐너 scan1 = 새 스캐너 (새 파일 ("File1.새로운 스캐너 (새 파일 ("File2. txt"))) { // 유용한 자료

} catch (IOException e) {

// 죄송합니다.

scan1

의 선언은 다음과 같이 정의됩니다.

scan1

scan2

try

라는 단어 다음에 괄호 안에 표시되며 괄호 안에있는 선언은

에서

scan1 scan2 > try 절 하나의 try 절 괄호 안에 여러 리소스를 선언 할 수 있으며, try 절의 명령문을 실행하면 Java가 자동으로 모든 리소스를 닫습니다. 원한다면 catch 절과 finally 절을 추가하면 모든 종류의 리소스 (파일, 데이터베이스, 서버와의 연결 등)에 액세스 할 수 있고 Java는 연결을 자동으로 끊습니다. 수명이 좋습니다.

Java try 문을 리소스 - 인형과 함께 사용하는 방법

편집자의 선택

플립 비디오 인형 치트 시트 - 인형

플립 비디오 인형 치트 시트 - 인형

플립 비디오 캠코더는 가장 사용하기 쉬운 캠코더입니다. 세계. 플립 비디오를 사용하면 비디오를 가리키고 촬영 한 다음 컴퓨터로 비디오를 복사 할 수 있습니다. 몇 번의 클릭 후, 당신은 Facebook, MySpace 및 YouTube에서 귀하의 작품을 과시하고 있습니다. Flip의 버튼을 해독함으로써 비디오를 고통없이 촬영하는 방법을 찾으십시오. 알아보기 ...

귀하의 디지털 필름에 대한 개인 상영 - 인형

귀하의 디지털 필름에 대한 개인 상영 - 인형

오늘, DSLR 필름 심사. HD가 장착 된 정교한 대형 스크린 TV는 여러 스피커의 서라운드 사운드 스테레오와 함께 아주 좋은 간식을 제공합니다. 따라서 영화 밤을 장소에서 쉽게 주최 할 수 있으며 영화관에 갈 수도 있습니다. ...

디지털 영화에 정적 제목을 추가하는 방법 - 인형

디지털 영화에 정적 제목을 추가하는 방법 - 인형

초연 요소는 다양한 선택을 제공합니다 DSLR 영화의 타이틀 선택 항목, 하위 3 분의 1 로케이터 정보. 로케이터 정보는 뉴스 세그먼트 및 다큐멘터리에서 장면의 사람이나 장소를 설명하는 데 사용되는 ID와 같습니다. 사람의 경우 이름과 설명이라는 두 줄로 구성됩니다. 예를 들어, Charles Dickens / Writer, ...

편집자의 선택

관계 속의 분노를 다루는 - 인형

관계 속의 분노를 다루는 - 인형

우리 모두는 때때로 파트너들과 화를 낸다. 분노가 당신과 당신의 관계에 미치는 파괴적인 영향을 최소화하는 데 도움이되는 다음 요령을 시도하십시오. 당신이 분노의 징후를 처음 알기 시작할 때, 당신의 파트너에게 무슨 일이 일어나는지 물어보십시오. 화가 난 사람을 상처 입히려 고합니다.

자폐증 진단의 영향 - 인형

자폐증 진단의 영향 - 인형

자폐아를 찾는 것이 매우 어렵습니다. 앞으로의 길은 쉬울 것이라고 아무도 말할 수 없습니다. 자녀의 생년월일과 본인의 생년월일에 관한 스크립트를 다시 작성해야 할 수도 있습니다. 당신은 지금 다루어야 할 새로운 쟁점, 압박 및 결정들을 가지고 있습니다. 그리고 주변 사람들은 ...

당신이 종속인지 결정하기 - 인형

당신이 종속인지 결정하기 - 인형

다음 증상 목록에서 확인하십시오. 당신은 모두가 공손 할 필요는 없으며, 코펜던트의 심각성 정도가 있습니다. 치료를하지 않으면 시간이 지남에 따라 코드 종속성이 악화되지만 도움을 받아 복구 할 수 있고 작업에서 훨씬 더 효과적 일 수 있습니다 ...

편집자의 선택

짧은 명상 묵상 시도 - 인형

짧은 명상 묵상 시도 - 인형

당신의 마음을 집중할 수있는 능력은 마음 챙김 명상을 통해 가장 강력하게 개발됩니다. Mindfulness 명상 중 하나는 호흡의 mindfulness입니다. 이것은 숨을 의식적으로 인식하는 것입니다. 명상을 스스로 시도하려면 다음 단계를 따르십시오. 자신의 호흡 감을 알아야합니다. 변경할 필요가 없습니다 ...

마음가짐의 세 측면 - 인형

마음가짐의 세 측면 - 인형

마음가짐은 세 가지 측면으로 주의 깊은 인식. 이 목록을 인쇄하여 핀이 무엇인지 생각 나게하십시오. 의도 - 당신의 의도는 당신이 마음가짐을 연습함으로써 얻고 자하는 것입니다. 스트레스를 줄이고 감정적 인 균형을 유지하거나 발견 할 수 있습니다.

다른 명상을 시도하십시오 - 인형

다른 명상을 시도하십시오 - 인형

명상 확장이라는 인식은 명상 확장의 중심에 있습니다. Mindfulness 명상 연습. 앉는 자리는 수천 년 동안 명상을 위해 그리고 정당한 이유로 사용되었습니다. 어떻게 평소에 앉아 있니? 당신이 대부분의 사람들과 비슷하다면, 아마 의자 나 소파 뒤에 기대어집니다. 네가 괜찮다면 ...