Note that there are some explanatory texts on larger screens.

plurals
  1. POWhen to use try/catch blocks?
    primarykey
    data
    text
    <p>I've done my reading and understand what a Try/Catch block does and why it's important to use one. But I'm stuck on knowing <em>when/where</em> to use them. Any advice? I'll post a sample of my code below in hopes that someone has some time to make some recommendations for my example. </p> <pre><code> public AMPFileEntity(string filename) { transferFileList tfl = new transferFileList(); _AMPFlag = tfl.isAMPFile(filename); _requiresPGP = tfl.pgpRequired(filename); _filename = filename.ToUpper(); _fullSourcePathAndFilename = ConfigurationSettings.AppSettings.Get("sourcePath") + _filename; _fullDestinationPathAndFilename = ConfigurationSettings.AppSettings.Get("FTPStagePath") + _filename; _hasBeenPGPdPathAndFilename = ConfigurationSettings.AppSettings.Get("originalsWhichHaveBeenPGPdPath"); } public int processFile() { StringBuilder sb = new StringBuilder(); sb.AppendLine(" "); sb.AppendLine(" --------------------------------"); sb.AppendLine(" Filename: " + _filename); sb.AppendLine(" AMPFlag: " + _AMPFlag); sb.AppendLine(" Requires PGP: " + _requiresPGP); sb.AppendLine(" --------------------------------"); sb.AppendLine(" "); string str = sb.ToString(); UtilityLogger.LogToFile(str); if (_AMPFlag) { if (_requiresPGP == true) { encryptFile(); } else { UtilityLogger.LogToFile("This file does not require encryption. Moving file to FTPStage directory."); if (File.Exists(_fullDestinationPathAndFilename)) { UtilityLogger.LogToFile(_fullDestinationPathAndFilename + " alreadyexists. Archiving that file."); if (File.Exists(_fullDestinationPathAndFilename + "_archive")) { UtilityLogger.LogToFile(_fullDestinationPathAndFilename + "_archive already exists. Overwriting it."); File.Delete(_fullDestinationPathAndFilename + "_archive"); } File.Move(_fullDestinationPathAndFilename, _fullDestinationPathAndFilename + "_archive"); } File.Move(_fullSourcePathAndFilename, _fullDestinationPathAndFilename); } } else { UtilityLogger.LogToFile("This file is not an AMP transfer file. Skipping this file."); } return (0); } private int encryptFile() { UtilityLogger.LogToFile("This file requires encryption. Starting encryption process."); // first check for an existing PGPd file in the destination dir. if exists, archive it - otherwise this one won't save. it doesn't overwrite. string pgpdFilename = _fullDestinationPathAndFilename + ".PGP"; if(File.Exists(pgpdFilename)) { UtilityLogger.LogToFile(pgpdFilename + " already exists in the FTPStage directory. Archiving that file." ); if(File.Exists(pgpdFilename + "_archive")) { UtilityLogger.LogToFile(pgpdFilename + "_archive already exists. Overwriting it."); File.Delete(pgpdFilename + "_archive"); } File.Move(pgpdFilename, pgpdFilename + "_archive"); } Process pProc = new Process(); pProc.StartInfo.FileName = "pgp.exe"; string strParams = @"--encrypt " + _fullSourcePathAndFilename + " --recipient infinata --output " + _fullDestinationPathAndFilename + ".PGP"; UtilityLogger.LogToFile("Encrypting file. Params: " + strParams); pProc.StartInfo.Arguments = strParams; pProc.StartInfo.UseShellExecute = false; pProc.StartInfo.RedirectStandardOutput = true; pProc.Start(); pProc.WaitForExit(); //now that it's been PGPd, save the orig in 'hasBeenPGPd' dir UtilityLogger.LogToFile("PGP encryption complete. Moving original unencrypted file to " + _hasBeenPGPdPathAndFilename); if(File.Exists(_hasBeenPGPdPathAndFilename + _filename + "original_which_has_been_pgpd")) { UtilityLogger.LogToFile(_hasBeenPGPdPathAndFilename + _filename + "original_which_has_been_pgpd already exists. Overwriting it."); File.Delete(_hasBeenPGPdPathAndFilename + _filename + "original_which_has_been_pgpd"); } File.Move(_fullSourcePathAndFilename, _hasBeenPGPdPathAndFilename + _filename + "original_which_has_been_pgpd"); return (0); } } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload