Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

c# - TRY CATCH - Classe esterna

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: archimede, Triumph Of Steel

c# - TRY CATCH - Classe esterna

Postdi fulviot » 08/11/17 09:55

Ciao a tutti,

vorrei iniziare a mettere le istruzioni Try e Catch nel codice dei miei programmi, ma non so bene come funzionino.

ho capito che con il try si dice al sistema di provare a fare una cosa e nel catch intercetti l'eccezione (riassunto per gli ignoranti come me)

Adesso il mio dubbio è, io ho una progetto in windows form, da ignorante che sono ho messo tutto il codice dietro la form, tranne una parte di codice che serve per fare un upload su un server FTP che ho messo in una classe esterna chiamata classe1.cs

non chiedetemi perché!! ho trovato la soluzione in internet, la ho provata e funziona :D

solo che la classe era priva di try e catch e provando il programma non in rete mi è andato in errore sulla connessione FTP.

allora ho detto inserisco le istruzioni try e catch e con mio stupore ha funzionato al primo colpo, però come faccio a restituire l'errore al form che ha richiamato la mia classe?

riporto sotto la parte di codice interessata presente nella classe Classe1.cs
Codice: Seleziona tutto
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Renci.SshNet;
using System.IO;

namespace PIPPO
{
    class sftp
    {
        public static void UploadSFTPFile(string host, string username,
        string password, string sourcefile, string destinationpath, int port)
        {
            using (SftpClient client = new SftpClient(host, port, username, password))
            {
                try
                {
                    client.Connect();
                }
                catch
                {
                    return;  ---- in questo punto vorrei restituire al form che ha richiamato la mia funzione un errore, che poi intercetterò e scriverò in una listbox
                }
                client.ChangeDirectory(destinationpath);
                using (FileStream fs = new FileStream(sourcefile, FileMode.Open))
                {
                    client.BufferSize = 4 * 1024;
                    client.UploadFile(fs, Path.GetFileName(sourcefile));
                }
            }
        }
    }
}
fulviot
Utente Junior
 
Post: 33
Iscritto il: 12/04/16 09:21

Sponsor
 

Postdi fulviot » 09/11/17 16:16

Ciao Ho trovato da solo la soluzione al mio problema.
nel caso servisse ad altri mi è bastato sostituire il tipo di funzione in "public static bool" e fare il return false o return true in base alla necessità, poi fuori dalla funzione\classe ho utilizzato delle semplici if sul valore restituito.
fulviot
Utente Junior
 
Post: 33
Iscritto il: 12/04/16 09:21


Torna a Programmazione


Topic correlati a "c# - TRY CATCH - Classe esterna":

SQLSERVER: chiave esterna
Autore: iceone
Forum: Programmazione
Risposte: 1

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti