Y a-t-il un mécanisme de type try ... catch pour rattraper les erreurs lorsque l'on travaille avec wxWidgets (apparamment wxWidgets n'offre rien à ce niveau...) ?
En fait, certaines URLS (http://www.monsite.com/directory(...) plante, tandis que http://www.monsite.com/fichier.htm(...) fonctionne bien) semblent faire planter le programme lorsque je les ouvre (qqn a-t-il déjà rencontré ce problème et a-t-il su le résoudre)... Le code ressemble à ceci :
filename = wxURL::ConvertToValidURI( filename );
wxURL url(filename);
if ( url.GetError() != wxURL_NOERR )
{
return false;
}
if ( (in_stream = url.GetInputStream()) )
{
.....
# try catch
Posté par Robert VISEUR (site web personnel) . Évalué à 2.
# Exemples plus précis
Posté par Robert VISEUR (site web personnel) . Évalué à 2.
URL qui ne fonctionne pas : http: //www.zdnet.fr/feeds/rss/actualites/
URL qui ne fonctionne pas : http: //www.clubic.com/c/xml.php?type=news
URL qui fonctionne : http: //www.vnunet.fr/rssrdf/news.xml
# J'ai trouvé
Posté par Robert VISEUR (site web personnel) . Évalué à 2.
En fait, pour certaines URLs (en pratique, celles citées plus haut), la taille du flux ne peut pas être extraite. La fonction qui renvoit la taille renvoit donc -1.
Dans ce cas, il faut utiliser GetC (ce qui semble plus lent) plutôt que Read et boucler tant que LastRead est égal à 1 (Eof ne marche pas non plus dans ce cas et il faut donc utiliser LastRead).
[^] # Re: J'ai trouvé
Posté par Robert VISEUR (site web personnel) . Évalué à 2.
bool fgetcsv (wxTextInputStream text, wxString tagfield1, wxString tagfield2, wxArrayString *data)
{
wxString token;
wxString line;
int i = 0;
data->Empty();
line = text.ReadLine();
if (line)
{
wxStringTokenizer tkz(line, tagfield1);
while ( tkz.HasMoreTokens() )
{
token = tkz.GetNextToken();
token.Replace(tagfield2, "");
token = token.Trim();
if (token)
data->Add (token);
i++;
}
}
else
return false;
return true;
}
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.