1.인수의 불일치로 발생하는 예외
- 다음 예제코드를 봅시다.
- 서식 지정 문자열에서 사용하는 인수의 개수와 실제 인수의 개수가 일치하는지는 자동으로 확인하지 않습니다.
- 컴파일 오류는 발생하지 않지만 컴파일 시 예외가 발생합니다.
- 서식 지정은 {0}~{9} 까지 10개가 있지만, 인수에 지정한 변수는 9개 이므로 예외 발생합니다.
static void Main(string[] args)
{
var a = "A";
var b = "B";
var c = "C";
var d = "D";
var e = "E";
var f = "F";
var g = "G";
var h = "H";
var i = "I";
var j = "J";
Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, j);
}
실행결과
- 다음과 같은 코드 수정으로 예외를 없앨 수 있습니다.
코드 수정
Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, j); //예외가 발생하는 코드
Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, i, j); //수정 된 코드
2.단순 문자열 연결
코드 수정
부분처럼 서식을 변경한다고 해도 본질적인 문제는 해결할 수 없습니다.- 문자열 연결이 목적이라면 다음과 같이 수정하는 것이 좋은 방법입니다.
- 다음과 같이 수정하면 서식 지정 개수와, 인수의 변수 개수를 맞출 필요가 없어집니다.
코드 수정
Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, j); //예외가 발생하는 코드
Console.WriteLine(a + b + c + d + e + f + g + h + i + j); //수정 된 코드
3. 정리
- 서식 지정을 사용해야 한다면, 서식 지정 개수와 인수에 지정한 변수의 개수를 잘 비교하는 수밖에 없습니다.
- 단순히 문자열 연결은 한다면
2.단순 문자열 연결
의 코드 수정부분과 같이 초기화해주는 것도 좋은 방법입니다.
'프로그래밍 > (도서)C#코딩의기술-실전' 카테고리의 다른 글
[C#] 코딩의기술(실전편) - 2.6 unsafe (0) | 2022.03.31 |
---|---|
[C#] 코딩의기술(실전편) - 2.5 Checked 키워드 (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 2.2 변화하는 조건 (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 1.7 예외처리 (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 1.6 강제 종료 처리 (0) | 2022.03.31 |