2011-04-05 3 views
4

장기적으로 배당금을 지불 할 수 있다는 경고를 고치기의 단기 성가심이 있습니까? 이렇게하면 일반적으로 어떤 종류의 런타임 오류를 피할 수 있습니까?일반적으로 경고를 오류로 처리하도록 컴파일러를 설정해야합니까?

+1

모든 경고를 오류로 간주하는 잠재적 인 * 카운터 * 인수는 무엇입니까? 그렇지 않으면이 질문은 어떻게하면 나쁜 것일 수 있습니까? 그렇지 않으면이 질문은 두려운 "설문 조사"영역으로 빠르게 내려갑니다. –

+0

지금까지 내가 한 일은 언제나 끝났습니다. 유 p는 0의 경고가 끝나고 나중에 빌드 될 때까지 나를지지하지 않는 특정 경고를 남겼습니다. 최근에 내가 사용 해본 다른 사람들의 프로젝트는 두 가지가 경고로 표시되고 경고는 오류로 처리됩니다 (예 : 객관적인 C 클래스의 선언되지 않은 선택자). 동의 한 모범 사례가 있는지 궁금합니다. – mbehan

답변

4

내 생각에 경고는 경고가 거기에있는 이유는 위험에 그것을 무시합니다. 몇몇은 실제로 까다 롭지 만 대부분의 경우 정당한 이유가 있습니다. 차라리 그 (것)들을 고정시키고 좋은 청결한 컴파일을하십시오. 그것은 당신이 어떻게 생각하는지에 따라 달라집니다 내가 일반적으로 모든 경고를 수정하지만, 오류로 설정하지 마십시오

2

는 "당신이 멀리로 얻을 수있는 경고"입니다. 또한 향후 코드 수정에 비추어 볼 때

오래 생각할수록 "덜어 버릴 수있는 경고"가 남아 있습니다.

1

일반적으로, 예.

많은 예외가있을 것입니다. 이런 방식으로 컴파일되지 않지만 사용자가 만지기를 원하지 않는 타사 라이브러리 헤더는 내가 생각할 수있는 가장 큰 라이브러리 헤더입니다. (그렇다하더라도, 나는 때때로 특정 헤더의 경고를 억제하기 위해 #include 행 주위에 #pragma를 사용했기 때문에 코드의 나머지 부분에 경고를 남길 수 있습니다.)

또 다른 예외는 작은 프로젝트입니다. 나를위한 간단한 어림짐작은 내가 Makefile이 필요하면 더 이상 작은 프로젝트가 아니며 경고, 문서 및 단원 테스트에 대한 항의를하고 싶습니다. 난 당신이 경고를 오류로 취급해야한다고 생각하는 이유 여기

0

입니다 : 당신이 뭔가가 null을 올 수있는 방법의 긴 체인이있는 경우

:

var amount = _client.SnatchLeftoverOrders(_username, _password, "pepperoni").Where(o => o.Ingredients.Any("mushrooms").Where(o => o.Ownersname.ToUpper == _incomingName).Amount(); 

이나 뭐 그런 곳이 많이 있습니다 null 예외가 발생할 수 있습니다.

코드는 FirstOrDefaults()를 추가 한 다음! null로 분기하는 것보다 훨씬 간단합니다. 당신은 캐치이있는 경우 경고를 오류로 처리하는 경우

, (당신은 예외 객체에 뭔가를해야하거나 오류입니다.

이는 "광택 프로그래밍을"이길 수있는 방법이 아니다 메달을 만들었지 만 간단한 일을 유지합니다 요즘에는 유모가 너무 많아서 프로그래밍이 진행되고 있습니다

관련 문제