Notice
Recent Posts
Recent Comments
Link
투케이2K
239. (java/자바) throws Exception 사용해 예외 상황 체크 및 try catch 구문에 예외 발생 리턴 실시 본문
Java
239. (java/자바) throws Exception 사용해 예외 상황 체크 및 try catch 구문에 예외 발생 리턴 실시
투케이2K 2022. 1. 23. 10:47[개발 환경 설정]
개발 툴 : Eclipse
개발 언어 : Java
[소스 코드]
package ex;
public class MainActivity6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("[Program Start]");
System.out.println("");
/* [요약 설명]
* 1. throws exception : 프로그래머가 임의로 exception을 강제로 발생 시켜 예외 상황을 알려주는 것입니다
* 2. exception 을 정의한 메소드는 throws 키워드를 사용해서 예외를 리턴 시켜줍니다
* 3. throws exception 메소드를 사용하는 코드쪽에서는 throws 에서 정의한 예외 부분을 모두 정의해 줘야합니다
* */
// [초기 변수 선언 실시]
String one = "10";
String two = ""; // 예외 상황을 체크하기 위해 임의로 널 값 지정 실시
System.out.println("[합계 연산 요청 실시]");
System.out.println("one : " + one);
System.out.println("two : " + two);
System.out.println("");
// [메소드 호출 수행 및 결과 확인 실시]
try {
int data = sum(one, two);
System.out.println("[합계 결과] : " + data);
System.out.println("");
}
catch (NumberFormatException e1) {
System.out.println("[catch] [NumberFormatException] : " + e1.getMessage());
System.out.println("");
}
catch (NullPointerException e2) {
System.out.println("[catch] [NullPointerException] : " + e2.getMessage());
System.out.println("");
}
catch (Exception e3) {
System.out.println("[catch] [Exception] : " + e3.getMessage());
System.out.println("");
}
}// 메인 종료
// [예외 던지기를 수행하는 메소드 선언 실시]
public static int sum (String a, String b)
throws NumberFormatException, NullPointerException, Exception {
/*
* [세부 설명]
* 1. 인풋값으로 들어온 String 변수를 int 형으로 변환 후 합계를 반환하는 메소드 입니다
* 2. NullPointerException : 인풋값으로 들어온 초기 string 데이터가 널인 지 판단해서 널인 경우 exception 을 발생시킵니다
* 3. NumberFormatException : string to int 로 데이터 형 변환 시 발생할 수 있는 exception을 정의해줍니다
* 4. Exception : 정의한 예외 상황 외에 발생한 결과를 리턴하기 위해 선언해줍니다
* 5. 모두 정상적으로 로직이 성공한 경우 리턴값으로 int 형 합계를 반환합니다
* */
// [결과를 반환할 변수 선언 실시]
int returnData = 0;
// [일반적으로 전체 try catch 구문 선언 실시]
try {
// [인풋 값으로 들어온 String 데이터 널 값 체크 실시]
if (a == null || a.length()<=0 || a.equals("") == true
|| b == null || b.length()<=0 || b.equals("") == true) {
throw new NullPointerException("input data is null"); // Exception 발생 체크 부분에 메시지 리턴
}
// [데이터 형 변환 수행 실시 :: String 값에 문자가 포함된 경우 Exception 발생]
try {
returnData = Integer.parseInt(a) + Integer.parseInt(b);
}
catch (NumberFormatException e) {
throw new NullPointerException("number format error"); // Exception 발생 체크 부분에 메시지 리턴
}
}
catch (Exception e) {
throw new Exception(e.getMessage()); // Exception 발생 체크 부분에 메시지 리턴
}
// [리턴 결과 반환 실시]
return returnData;
}
}// 클래스 종료
[결과 출력]
반응형
'Java' 카테고리의 다른 글
241. (java/자바) String join 사용해 문자열 및 배열 (array) 데이터 결합 실시 (0) | 2022.03.09 |
---|---|
240. (java/자바) Date 사용해 두 날짜 차이 계산 실시 - 초(sec), 분(min), 시간(hour), 날짜(day) (0) | 2022.02.10 |
238. (java/자바) 퍼센트 percent 값 구하기 실시 및 소수점 자리 수 포맷 실시 (1) | 2021.10.02 |
237. (java/자바) list to hashset 변환 및 데이터 중복 제거 실시 (0) | 2021.09.08 |
236. (java/자바) 알고리즘 : 스킬트리 - replaceAll 정규식 , 특정 문자 패턴 출력 (0) | 2021.08.24 |
Comments