Java 16일차 3-1(예외처리)

2022. 12. 1. 11:54코딩배움일지/JAVA

import java.util.ArrayList;
import java.util.List;

import lombok.Builder;
import lombok.Data;

@Builder
@Data
class User{ /*서브클래스*/ /*default*/
	private String username;
	private String password;
}

public class UserListException { /*메인 클래스 는 이름이 같아야 함.*/

	public static void main(String[] args) {
		
		List<User> userList = new ArrayList<>();
		
		userList.add(new User("aaa", "1111"));
		userList.add(new User("bbb", "2222"));
		userList.add(new User("ccc", "3333"));
		userList.add(new User("ddd", "4444"));
		userList.add(null);
		
		int length = userList.size() + 1;
		
		try {
			
			for (int i = 0; i < length; i++) {
				System.out.println(userList.get(i));
			}
			for (int i = 0; i < length; i++) {
				System.out.println("username: " + userList.get(i).getUsername());
				System.out.println("password: " + userList.get(i).getPassword());
			}
			
		} catch (IndexOutOfBoundsException indexOutOfBoundsException) { /*java.lang.IndexOutOfBoundsException 대입 해야한다.*/
			length -=1;
			System.out.println(indexOutOfBoundsException.getMessage());
			try {
				for (int i = 0; i < length; i++) { /*위에서 끝났기 때문에 한번더 실행 해야함. 이번에는 */ /*java.lang.NullPointerException:*/
					System.out.println("username: " + userList.get(i).getUsername());
					System.out.println("password: " + userList.get(i).getPassword());
				}
			} catch (NullPointerException nullPointerException) {
				System.out.println( nullPointerException.getMessage());
			}
				
		}		
		System.out.println("프로그램 정상 종료");
		
	}

}

 

User(uesername=aaa, password=1111)
User(uesername=bbb, password=2222)
User(uesername=ccc, password=3333)
User(uesername=ddd, password=4444)
null
프로그램 정상 종료

 

예외처리

 

import java.util.ArrayList;
import java.util.List;

import lombok.Builder;
import lombok.Data;

@Builder
@Data
class User{ /*서브클래스*/ /*default*/
	private String username;
	private String password;
}

public class UserListException { /*메인 클래스 는 이름이 같아야 함.*/

	public static void main(String[] args) {
		
		List<User> userList = new ArrayList<>();
		
		userList.add(new User("aaa", "1111"));
		userList.add(new User("bbb", "2222"));
		userList.add(new User("ccc", "3333"));
		userList.add(new User("ddd", "4444"));
		userList.add(null);
		
		int length = userList.size();
		
		try {
			
			for (int i = 0; i < length; i++) {
				System.out.println(userList.get(i));
			}
			for (int i = 0; i < length; i++) {
				System.out.println("username: " + userList.get(i).getUsername());
				System.out.println("password: " + userList.get(i).getPassword());
			} /*try 문에서 오류 발생하면 */
			
		} catch (IndexOutOfBoundsException indexOutOfBoundsException) { /*java.lang.IndexOutOfBoundsException 대입 해야한다.*/
			length -=1;
			System.out.println(indexOutOfBoundsException.getMessage());
			try {
				for (int i = 0; i < length; i++) { /*위에서 오류났기 때문에 한번더 실행 해야함. 이번에는 */ /*java.lang.NullPointerException:*/
					System.out.println("username: " + userList.get(i).getUsername());
					System.out.println("password: " + userList.get(i).getPassword());
				}
			} catch (NullPointerException nullPointerException) { 
				System.out.println( nullPointerException.getMessage());
			}		
				
		}catch (NullPointerException nullPointerException) {  /*NullPointerException 한번더 잡아 줘야함*/
			System.out.println( nullPointerException.getMessage());
		}
		System.out.println("프로그램 정상 종료"); 
		
	}

}

 

 

User(username=aaa, password=1111)
User(username=bbb, password=2222)
User(username=ccc, password=3333)
User(username=ddd, password=4444)
null
username: aaa
password: 1111
username: bbb
password: 2222
username: ccc
password: 3333
username: ddd
password: 4444
Cannot invoke "j18_예외.User.getUsername()" because the return value of "java.util.List.get(int)" is null
프로그램 정상 종료

'코딩배움일지 > JAVA' 카테고리의 다른 글

Java 16일차 4(예외처리)  (0) 2022.12.01
Java 16일차 3-2(예외처리)  (0) 2022.12.01
Java 16일차 3(예외처리  (0) 2022.12.01
Java 16일차 2(JSON)  (0) 2022.12.01
Java 16일차 1(JSON)  (0) 2022.12.01