HtmlAgilityPack 오류 처리 - 예외 잡기

c# error-handling html-agility-pack

문제

나는 예외를 잡는 방법을 결정하려고하는데, Object reference not set to an instance of an object.Object reference not set to an instance of an object.

예외를 잡는 더 좋은 방법이 있으며 예외의 원인을 사용자에게 보여 줬습니까?

       baseUrl = "my url....";
        try
        {
            HtmlWeb hw = new HtmlWeb();
            HtmlDocument docSRC = hw.Load(baseUrl);

            //if (docSRC.DocumentNode.SelectNodes("//img/@src").Count > 0)
            //{

            //}

            foreach (HtmlNode link in docSRC.DocumentNode.SelectNodes("//img/@src"))
            {
                HtmlAttribute att = link.Attributes["src"];
                srcTags.Add(att.Value);

            }
        }
        catch (Exception ex)
        {
            //catch reason for exception....
        }

인기 답변

나는 예외를 다루는 다른 방법을 생각할 수 없다. 그러나 우선 예외를 피할 수 있다면 더 좋을 것입니다.

게시 된 코드 스 니펫을 보면 src 특성이없는 link 가 있으면 NullReferenceException 이 throw 될 수 있습니다.이 경우 attnull att.Value 부분 att.Value 는 예외를 발생 att.Value .

GetAttributeValue() 메서드를 사용하여 예외를 피할 수 있습니다. 예를 들면 다음과 같습니다.

//here when the attribute not found, the 2nd parameter will be returned 
//(empty string in this case)
var src =  link.GetAttributeValue("src", "");


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.