try catch를 사용하지 않고 이벤트 로그 쓰기 권한의 유효성을 검사하려면 어떻게합니까? 다음 질문을 읽었습니다 : Checking Event Log writing Permissions without writing an entry, 그러나 대답은 EventLogPermissionAttribute
을 사용하여 제안합니다. 내가 아는 한이 권한을 확인하는 데 사용할 수 없으며 요청 된 권한이 없을 때 Exception
을 던집니다.이벤트 로그 유효성 검사 쓰기 권한
내 코드는 지금과 같이 보입니다 :
public void WriteMessage(string message)
{
try {
var trace = new TraceSource("MySource");
trace.TraceEvent(TraceEventType.Information, 1000, message);
} catch() {
var log = LogManager.GetLogger<MyClass>();
log.Info(message);
}
}
을하지만 난 이런 걸 좋아하는 것 : 당연히
public void WriteMessage(string message)
{
if(EventLogPermission("MySource"))
{
var trace = new TraceSource("MySource");
trace.TraceEvent(TraceEventType.Information, 1000, message);
} else {
var log = LogManager.GetLogger<MyClass>();
log.Info(message);
}
}
말은 큰 차이 만들하지 않습니다하지만 시도 캐치를 사용하여 논리가 단지 더럽다고 느낀다.
나는 try-catch가 아닌 옵션도 찾았지만 대안을 찾지 못했습니다. 따라서 가능한 경우이를 허용 가능한 프로그램 흐름으로 보아서는 안된다는 면책 조항과 함께 시도해보십시오. – Hans
또한 일부 언어 (예 : Python)의 일부 예외는 일부 * 예외적 인 * 조건을 처리하는 데 선호됩니다. 그것은 단지 다른 접근 방식입니다 : LBYL (당신이 도약하기 전에보십시오) 대 EAFP (허가보다 용서를 구하는 것이 더 쉽습니다). – J0HN
감사합니다. @ J0HN 다른 관점에서 다른 관점을 얻는 것이 좋습니다. –