2024-04-29
주말 간의 달디단 휴식이 끝나고, 새로운 팀 프로젝트가 시작되었다.
지난 주에 제작한 개인 프로젝트 Sparta Dungeon 텍스트형 RPG 를 업데이트하여
턴제 전투 기능과 새로운 직업, 스킬을 추가하는 것이 목표이다.
첫번째 날, 저장/불러오기 기능을 맡아 구현하였고,
기존에 사용했던 Player 클래스를 상속 받아 Warrior 클래스와 Mage 클래스를 생성해주었다.
프로그램 실행 중에 발생하는 예기치 않은 상황을 예외 라고 부른다.
C# 에서는 try-catch 블록을 사용하여 예외 처리를 수행
try - 블록 내에서 예외가 발생할 수 있는 코드를 작성
catch - 블록에서 예외를 처리
try
{
int result = 10 / 0; // ArithmeticException 발생
Console.WriteLine("결과 " + result);
}
catch (DivideByZeroException ex)
{
Console.WriteLine("0으로 나눌 수 없습니다.");
}
catch (Exception ex)
{
Console.WriteLine("예외가 발생했습니다. " + ex.Message);
}
finally
{
Console.WriteLine("finally 블록이 실행되었습니다.");
}
public class WrongNumberException : Exception
{
public WrongNumberException(string message) : base(message) // 이니셜라이저
{
}
}
Random random = new Random();
try
{
int number = random.Next(0,5);
if(number >= 2)
{
throw new WrongNumberException("범위에 벗어난 수 입니다.");
}
}
catch (WrongNumberException ex)
{
Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("예외가 발생했습니다. " + ex.Message);
}
Exception 을 상속 받은 WrongNumberException 의 생성자 부분에 : base(message) 를 나타내는 말이다.
뿐만 아니라,
처럼 선언과 동시에 초기화를 해주는 메서드를 뜻한다.
여기서 : base(message) 코드는
WrongNumberException 의 생성자가 호출되기 전에,
부모 클래스인 Exception 의 생성자가 먼저 호출되어야 한다는 것을 알려주는 이니셜라이저 이다.
값형과 참조형 사이의 변환
변수에 값을 직접 저장하는 형태
변수가 데이터에 대한 참조(메모리 주소)를 저장하는 형태
값형을 참조형으로 변환하는 과정
int num1 = 10;
object obj = num1; // 박싱
박싱된 객체를 다시 값형으로 변환하는 과정
int num2 = (int)obj; // 언박싱
다시 팀 프로젝트가 진행되어, 새로운 기능을 구현하거나 공부하기 전까진 TIL 에 쓸 내용이 별로 없을 것 같다.