2010-04-12 3 views

답변

1

이와 같은 예외가 발생하면 응용 프로그램에 적합한 것이 무엇인지 결정하는 것은 정말로 당신에게 달려 있습니다. 당신이해서는 안되는 유일한 일은 그것을 무시하는 것입니다.

옵션은 포함했다 :

  • 자동으로 예외를 연결 문제가 일시적
  • 돌아 사용자에게 적절한 오류 메시지입니다 경우, 여러 번 재 시도 아마도 로그인하거나 이메일을 보내
  • 새로운 복사본을 가져올 수있을 때까지 XML 파일의 이전에 캐시 된 버전을 사용하십시오.
  • 예외를 호출 레이어로 버블 링하고 처리하도록합니다 (아마도 먼저 로깅 할 것입니다).

당신이해야 할 수도있는 일은 모든 리소스를 정리하는 것입니다. 연결을 엽니 다).

0

다른 처리를 트리거하기 위해 예외를 catch하는 방법을 시도했지만 어떤 이유로 작동하지 않습니다. ErrorMessage를 표시하는 예외 대신 Repeater1을 숨기려면 페이지를 죽이는 예외가 발생합니다. 예외 정보 : System.Net.WebException : 원격 서버에서 오류를 반환했습니다. (404) 찾을 수 없습니다.

예외를 catch 한 다음 다른 조치를 취할 수없는 이유는 무엇입니까?

protected void Page_PreRender(object sender, System.EventArgs e) 
{ 
    try 
    { 
     RssSource.DataFile = "http://www.example.com/rss/feed/index1.aspx"; 
     RssSource.XPath = "/rss/channel/item[position()<3]"; 
     RssSource.EnableCaching = true; 
     RssSource.CacheDuration = 43200; 
     RssSource.CacheExpirationPolicy = DataSourceCacheExpiry.Absolute; 
    } 
    catch (Exception ex) 
    { 
     ErrorMessage.Visible = true; 
     Repeater1.Visible = false; 

    } 
} 

<asp:Label ID="ErrorMessage" runat="server" Text="News not unavailable" Visible="false" /> 
<asp:XmlDataSource ID="RssSource" runat="server" /> 
<asp:Repeater ID="repeater1" runat="server" DataSourceID="RssSource"> 
    <ItemTemplate> 
     <p><%# XPath("description")%></p> 
    </ItemTemplate> 
</asp:Repeater> 
0

나는이 문제가 해결되었다고 생각하지만 누군가 다른 사람이이 게시물에 문제가있어이 질문에 답하는 경우를 대비하여 답변하고 있습니다. 당신은 또한 당신의 try 블록 내에서 XmlDataSource에 바인딩 할 필요가

...

  try 
      { 

       xdsRSS.DataFile = Configuration.BeaconConfigurationSection.Current.SyndicatedJobs.RssUrl; 
       xdsRSS.XPath = Configuration.BeaconConfigurationSection.Current.SyndicatedJobs.XPath; 
       xdsRSS.EnableCaching = true; 
       xdsRSS.CacheExpirationPolicy = DataSourceCacheExpiry.Absolute; 
       xdsRSS.CacheDuration = 6000; 
       dlRSS.DataSource = xdsRSS; 
       dlRSS.DataBind(); 
      } 
      catch 
      { 
       dlRSS.Visible = false; 
       pnlLinkToJobSite.Visible = true; 
      } 

... 리피터에서 DataSourceID 속성을 제거해야합니다, 당신은 갈 수 있어야한다.

관련 문제