ho alcune perplessità su come gestire al meglio le eccezioni.
vi faccio un esempio:
questo metodo a un certo punto ne richiama altri; questi altri metodi hanno anch'essi dei blocchi try/catch.codice:protected void insertFile(object sender, EventArgs e) { filePath = "C:\\Documents and Settings\\Administrator\\Desktop\\Upload\\"; string ext = System.Configuration.ConfigurationManager.AppSettings["videoExt"]; string[] arr = ext.Split(' '); string extUpload; if (FileUpload1.HasFile) { filePath += FileUpload1.FileName; name = FileUpload1.FileName; extUpload = name.Substring(name.LastIndexOf('.') + 1); if (File.Exists(filePath)) { lblMessage.Text = "Il file già esiste"; } else { foreach (string estensioni in arr) { if (extUpload == estensioni) { try { //salva localmente FileUpload1.SaveAs(filePath); //calcola durata Microsoft.DirectX.AudioVideoPlayback.Video video = new Microsoft.DirectX.AudioVideoPlayback.Video(filePath); durata = Convert.ToDecimal(video.Duration); //video. lblMessage.Text = " "; //query SP insertData(); //invio ftp sendFile(); //cancella file locale localDelete(); break; } catch (Exception ex) { lblMessage.Text = ex.Message; } } else { lblMessage.Text = "Estensione non supportata"; } } } } else { lblMessage.Text = "File non caricato"; } }
ad esempio:
in sostanza è come se avessi creato un try nidificato.codice:protected void insertData() { string eraser = "0"; SqlCommand cmd = new SqlCommand("TNW_insert_spot", conn); cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add("@nome_file_spot", SqlDbType.VarChar).Value = name; cmd.Parameters.Add("@descrizione", SqlDbType.VarChar).Value = descrizione.Text; cmd.Parameters.Add("@eraser", SqlDbType.Int).Value = Convert.ToInt32(eraser); cmd.Parameters.Add("@tipo_spot#", SqlDbType.Int).Value = Convert.ToInt32(ddlTipoSpot.SelectedValue); cmd.Parameters.Add("@durata_spot", SqlDbType.Decimal).Value = durata; try { conn.Open(); cmd.ExecuteNonQuery(); } catch (Exception ex) { lblMessage.Text = ex.Message; //throw new Exception(ex.Message); } finally { conn.Close(); } }
come posso gestire al meglio queste situazioni??

Rispondi quotando
