try catch를 쓰면 예외 처리 핸들링을 위한 비용이 발생하므로

단지 유효성 확인만 필요하고 예외 처리 메시지를 들여다보고 로그를 남기는 등의 작업이 불필요하다면

tryparse를 쓰는 게 훨씬 경제적이며 코드도 깔끔하다

long num;
try
{
    num = Int64.Parse("")
}
catch (Exception ex)
{
    log(ex.message)
}

........

if (! Int64.TryParse("", out long num))
{
    log("warning")
}

루프 작업이 아니라면 try catch의 비용을 걱정하느니 컨텐츠 개발에 몰두하는 게 맞지만

코드는 습관이니 이왕이면 비싼 것들을 기피하는 게 낫다

아님 말고