int[] arr;
int i;
try
{
arr = new int[1];
i = 2;
arr[i] = 10; //오류발생!
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine($"에러 arr : {arr}, i : {i}");
}
finally
{
}
이런 패턴 문제점이 각 구간이 별도 스택이어서 지역변수를 날려먹으니까 로그쓰려면 스택바깥에 미리 선언해둬야하고 귀찮아진다는거임.
trylabel
{
try:
var arr = new int[1];
int i = 2;
arr[i] = 10; //오류발생!
break;
catch IndexOutOfRangeException ex ioor:
Console.WriteLine($"에러 arr : {arr}, i : {i}");
break;
catch: //그외의 경우
throw;
finally:
break;
}
스위치처럼 동일스택내 레이블로 구분하도록 구성하면 초기화 되지 않은상태더라도 접근이 가능함.
이런식으로 코드 작성 가능한 언어나 방법 소개좀
c랑 고랭 좋아할듯ㅇㅅㅇ
둘다 좋아하긴 하는데 안쓴지 오래됨 ㅋㅋ 걍 c#씀
진심 정신병자식 논리네
언어를 지맘대로 해석해서 다른거 되는거 찾는거 보면 역겹다
본인 설계가 잘못됐다는걸 인지를 못함?
모가 문젠데?
설계 문제라고
오류나면 로그남기는게 잘못된거야? 아님 먼설계?
오류 로그 남기는건 잘못한게 아님 너가 하는짓이 근데 잘못됨
너의 질문이 해소될 언어를 찾을만큼의 설계가 질못됨
모 별 해괴한걸 만들생각이 있는건 아니고 그냥 현존하는 try-catch패턴들이 좀만더 간결했으면 하는거지...
https://gall.dcinside.com/mgallery/board/view/?id=csharp&no=637&page=1
지금보니 같은스택상에서는 catch: 로 이동하고난 시점에 arr가 초기화가 되있는지 아닌지를 확인할 방법이 없어서 어려울듯함