Diskuze: Při chybě program zapíše chybu a pak jede dál ASP.NET
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Co něco takového:
while(emailRemaining)
{
try
{
//Odeslání emailů
}
catch(Exception ex)
{
// Zapáis do DB o chybě
}
}
A možná by nebylo od chyby místo zachytávání všech vyjímek, zachytávat jen tu, kterou vyhazují nevalidní emaily
A ještě možná by nebylo od věci si třeba ověřit formát těch emailových adres podle regexu a zkusit odeslat jen ty které jsou validní (třeba zde: http://emailregex.com je regex pro emaily)
Přesně to mě taky napadlo, že to možná řeším moc pozdě, takže už je vliduju, jakmile je vytáhnu z DB a jakmile nejsou validní už je ani nikam neposílám, jenom si v DB poznamenám, že jsou na hovno.....
Díky za tip na regulární výrazt
ziadny try catch netreba,
class Program
{
static void Main(string[] args)
{
var emails = new List<string>();
emails.ForEach((email) =>
{
if (email.IsEmailValid())
{
//send email
}
});
}
}
}
public static class Extenstions
{
public static bool IsEmailValid(this string email)
{
bool isEmail = Regex.IsMatch(email, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase);
if (!isEmail)
{
//log exception
return false;
}
return true;
}
Díky, přesně tak jsem to nakonec udělal, ale zlobí mě regulární výraz co jsem našel.... aplikace spadne při nalezení emailu např. : *******ránský@seznam.cz, nebo *********ąa@seznam.cz, atd....
ale koukám tvoje kontrola mejlů je o moc lepší, než co jsem našel takže moc děkuju
Zobrazeno 7 zpráv z 7.