2016-11-18 1 views
1

HashMap을 처리하는 메인 클래스가 serialize 가능한 인터페이스를 사용하여 파일에 저장하려는 다른 유형의 클래스를 상상해보십시오.이와 같은 경우 예외를 사용해야합니까?

우리는 데이터호출 할 수있는 기본 클래스 관리자 내가 파일에 저장할 클래스를 호출 할 수 있습니다.

이제 관리자 클래스는 파일에 데이터 클래스의 인스턴스를 저장하는 방법 (데이터의 모든 인스턴스 관리자 클래스의 의 HashMap에 저장됩니다)가 있습니다. 인스턴스의 이름이 내 사용자에게 입력되므로 존재하지 않을 수 있습니다.

이와 같은 경우 어떻게해야합니까? 인스턴스가 존재하는지 확인하고 그렇지 않은 경우 false를 반환하거나 void를 반환하는 함수를 만들고 인스턴스가없는 경우 예외를 throw합니다. 이런 경우 예외를 사용해야합니까? 예외는 프로그램의 성능에 커다란 영향을 미칩니 까? (우리가 새로운 객체를 만들어야 할 때마다 ...)?

감사합니다.

+1

'HashMap'의 기능을 수행하십시오. 키에 관련한 낡은 값을 돌려줍니다. 존재하지 않는 경우는 null를 돌려줍니다. 예외는 필요 없습니다. – EJP

+0

@EJP이 상황에서 어떤 개체에 대한 참조도 반환하고 싶지 않습니다. 객체를 메모리에 저장하기 때문에 객체는 성공으로 저장되면 true를 반환하고 존재하지 않거나 IOException이 발생한 경우 false를 반환합니다. –

+1

성능에 대해서는별로 생각하지 않아야하지만 예외가 적절한 설계 및 구현 선택이라는 조건에 대해서는 생각하지 않아야합니다. 표준 API 자체를 살펴보고, 설명하는대로 예외를 사용합니까? 기타. – pvg

답변

1

이 경우에는 프로그램 논리를 중단 할 때 예외를 throw해야합니다.

인스턴스의 존재가 향후 작업에 중요하고 중요 할 경우 예외를 throw하는 것이 좋습니다. 그렇지 않으면 메서드는 예외없이 boolean을 반환 할 수 있습니다.

예외가 프로그램 성능에 큰 영향을 줍니까?

아니요, 그렇지 않습니다. 어쨌든, 그것에 대해 걱정할 필요가 없습니다.
There are a good question and answers.

1

Exceptions은 디스크에 파일을 쓰는 것처럼 수행 할 수는 없지만 디스크가 꽉 찼을 때 사용됩니다.

if 분모에서 분모가 0인지 아닌지 확인하고 사용자가 다른 번호를 입력하도록 요청할 수있는 경우에 사용됩니다.

Exceptionsif보다 비쌉니다. 예외가 발생하면 스택 트레이스가 생성되어 뒤로 걸어 가기 때문입니다.

오류를 방지하기 위해 무엇이든 할 수 있다면 if을 사용하십시오. 할 수 없다면, exception

관련 문제