Console.Write가 실패합니까?

Alex Chumbley

메서드가 끝날 때까지 올바른 항목이 모두 채워 졌는지 확인하기 위해 run () 함수를 테스트하고 있습니다. 데이터베이스에서 4 개의 필드, 2 개의 문자열 및 2 개의 IEnumerable (string)을 채 웁니다. 아이디어는 내가 데이터베이스에서 가져 오는 모든 사람들을 위해 그것들을 모두 인쇄하는 것입니다.

문자열 필드 만 인쇄하면 모든 것이 잘 작동합니다. 그러나 Enumerables도 추가하려고하면 아무것도 인쇄되지 않습니다. 또한 카운터를 인쇄하고 있으므로 프로그램이 여전히 실행 중이고 작동 중임을 알 수 있습니다. 콘솔은 공간이나 다른 이유로 인해 아무것도 인쇄하지 않기로 결정한 적이 있습니까?

이를 수행하는 코드는 다음과 같습니다.

int i = 0;
foreach (Contact contact in Contact.LoadWithPredicate(getAll))
        {
                -------other code to populate fields---------

                i ++;
                Console.WriteLine(i);
                //Turn the Enumerables into strings for printing
                string firstEnumAsString = String.Join(", ", firstEnumerable.ToArray());
                string secondEnumAsString = String.Join(", ", secondEnumerable.ToArray());

                Console.WriteLine("Email: " + firstString+ ", correspondance: " + secondString+ ", PAM addresses: " + firstEnumAsString+ ", famousPeople: " + secondEnumAsString);
}

따라서 출력으로 위의 코드를 실행할 때마다 다음과 같은 출력이 표시됩니다.

1

2

Email: [email protected], correspondance: John, PAM addresses: [email protected], famousPeople: foo, bar, foo

3

4

etc

문제는 전체 (~ 425 명) 중 2 명만 나타나고 나머지 줄은 숫자 일뿐입니다. 적어도 "이메일"과 ", 서신"이라는 문자열을 받아야하지 않습니까? 콘솔이 아무것도하지 않기로 결정한 것 같습니다. 그리고 Console.WriteLine ()을 호출하기 직전에 정수 i를 출력하기 때문에 코드가 도달해야한다는 것을 알고 있습니다.

반면에 두 개의 문자열 필드를 인쇄하도록 요청할 때마다 콘솔은 해당 정수 바로 뒤에 425 명의 모든 사용자에 대한 두 필드를 모두 표시합니다. 여기에서 무슨 일이 일어나고 있는지 아는 사람이 있습니까? TIA

크리스 싱클레어

귀하의 의견에 따르면 귀하 firstEnumerable또는 secondEnumerable개체가 null. 당신이 이러한 개체를 얻는 방법을 게시하지 않았기 때문에, 나는에 대해 언급 할 수없는 이유는 그들이 null또는 해결 방법을 할 수 있습니다.

null 항목 을 포함 하거나 완전히 비워도 괜찮지 만, 호출 할 때 자체가 될 수 null없거나 던질 것입니다. 이는 "값은 null 일 수 없음"예외 메시지에 해당합니다.ArgumentNullException.ToArray()

충돌이 발생하지 않는 이유는 try/catch코드 샘플에 게시되지 않은 블록으로 반복 루프 내의 예외를 삼키고 (및 로깅?)하기 때문 입니다.


실제 코드는 다음과 같다고 생각합니다.

foreach (Contact contact in Contact.LoadWithPredicate(getAll))
{
    try
    {
        ...

        object[] firstEnumerable = null;
        object[] secondEnumerable = null;

        //some logic gates here which under some circumstances do not 
        //assign a valid instance to firstEnumerable or secondEnumerable

        ...
        Console.WriteLine(i); //this prints every time

        //Turn the Enumerables into strings for printing
        string firstEnumAsString = String.Join(", ", firstEnumerable.ToArray()); //exception here
        string secondEnumAsString = String.Join(", ", secondEnumerable.ToArray()); //or exception here

        Console.WriteLine("Email: " + firstString+ ", correspondance: " + secondString+ ", PAM addresses: " + firstEnumAsString+ ", famousPeople: " + secondEnumAsString);
        ...
    }
    catch
    {
        //maybe some logging? maybe not?
    }
}

i매번 값 을 인쇄합니다 . 그러나 생성을 시도 firstEnumAsString하거나 secondEnumAsString예외 가 발생하면 두 번째에 도달 하지Console.WriteLine("Email: " + ...); 않으므로 표시되는 출력이 생성됩니다. 그것이 Console.WriteLine실패하는 것이 아니라 처음에 그것을 결코 부르지 않는 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

document.createElement ( "")가 실패합니까?

분류에서Dev

PHP require_once가 실패합니까?

분류에서Dev

이 순회가 왜 실패합니까?

분류에서Dev

Nunit-console.exe가 Nant 및 Bamboo를 사용하는 반환 코드 7과 함께 실패합니다.

분류에서Dev

console.log (... arguments)가 정상인 경우 var a = ... arguments가 실패하는 이유는 무엇입니까?

분류에서Dev

write () 실패시 어떤 일이 발생합니까?

분류에서Dev

CreateDepthStencilView ()가 실패합니다.

분류에서Dev

computeIfAbsent가 어떻게 ConcurrentHashMap을 무작위로 실패합니까?

분류에서Dev

Selenium chromedriver가 크론 작업에서 실패합니까?

분류에서Dev

이 경우 왜 seekp ()가 실패합니까?

분류에서Dev

UINavigationController 할당 해제 테스트가 실패합니까?

분류에서Dev

몽구스-왜 캐스트 날짜가 실패합니까?

분류에서Dev

Kotlin Elvis 연산자가 JsonElement에서 실패합니까?

분류에서Dev

정규식 테스트가 nodejs에서 실패합니까?

분류에서Dev

do_package_qa 오류에서 Bitbake가 실패합니까?

분류에서Dev

웹 인증 브로커가 항상 실패합니까?

분류에서Dev

언제 open (2)가 errno == EMLINK로 실패합니까?

분류에서Dev

투명 키가 실패하면 어떻게해야합니까?

분류에서Dev

왜 일부 ioctl 케이스가 항상 실패합니까?

분류에서Dev

Chrome 팝업 차단기가 실패합니까?

분류에서Dev

dynamic_cast가 실패하면 무엇을 의미합니까?

분류에서Dev

Eclipse Hello World가 Mac, 도구 모음에서 실패합니까?

분류에서Dev

AuthorizedKeysFile 값을 설정하면 ssh 실패가 발생합니까?

분류에서Dev

GPU 전원 공급 장치가 실패합니까?

분류에서Dev

C 초보자 : 왜 swprintf가 실패합니까?

분류에서Dev

실패한 MySQL 쿼리가 부작용을 유발합니까?

분류에서Dev

왜 JSON.stringify ($ ( '# calendar'). fullcalendar ( 'clientEvents'))가 실패합니까?

분류에서Dev

Javascript 왜 console.log (typeof "Not a Number"- "Number")가 'NaN'을 인쇄합니까?

분류에서Dev

OTRS .opm 패키지 설치가 오류와 함께 실패합니까?

Related 관련 기사

  1. 1

    document.createElement ( "")가 실패합니까?

  2. 2

    PHP require_once가 실패합니까?

  3. 3

    이 순회가 왜 실패합니까?

  4. 4

    Nunit-console.exe가 Nant 및 Bamboo를 사용하는 반환 코드 7과 함께 실패합니다.

  5. 5

    console.log (... arguments)가 정상인 경우 var a = ... arguments가 실패하는 이유는 무엇입니까?

  6. 6

    write () 실패시 어떤 일이 발생합니까?

  7. 7

    CreateDepthStencilView ()가 실패합니다.

  8. 8

    computeIfAbsent가 어떻게 ConcurrentHashMap을 무작위로 실패합니까?

  9. 9

    Selenium chromedriver가 크론 작업에서 실패합니까?

  10. 10

    이 경우 왜 seekp ()가 실패합니까?

  11. 11

    UINavigationController 할당 해제 테스트가 실패합니까?

  12. 12

    몽구스-왜 캐스트 날짜가 실패합니까?

  13. 13

    Kotlin Elvis 연산자가 JsonElement에서 실패합니까?

  14. 14

    정규식 테스트가 nodejs에서 실패합니까?

  15. 15

    do_package_qa 오류에서 Bitbake가 실패합니까?

  16. 16

    웹 인증 브로커가 항상 실패합니까?

  17. 17

    언제 open (2)가 errno == EMLINK로 실패합니까?

  18. 18

    투명 키가 실패하면 어떻게해야합니까?

  19. 19

    왜 일부 ioctl 케이스가 항상 실패합니까?

  20. 20

    Chrome 팝업 차단기가 실패합니까?

  21. 21

    dynamic_cast가 실패하면 무엇을 의미합니까?

  22. 22

    Eclipse Hello World가 Mac, 도구 모음에서 실패합니까?

  23. 23

    AuthorizedKeysFile 값을 설정하면 ssh 실패가 발생합니까?

  24. 24

    GPU 전원 공급 장치가 실패합니까?

  25. 25

    C 초보자 : 왜 swprintf가 실패합니까?

  26. 26

    실패한 MySQL 쿼리가 부작용을 유발합니까?

  27. 27

    왜 JSON.stringify ($ ( '# calendar'). fullcalendar ( 'clientEvents'))가 실패합니까?

  28. 28

    Javascript 왜 console.log (typeof "Not a Number"- "Number")가 'NaN'을 인쇄합니까?

  29. 29

    OTRS .opm 패키지 설치가 오류와 함께 실패합니까?

뜨겁다태그

보관