where should we add Exception handling here
$begingroup$
I am reading a custom config section in my app.config and iterating through the URL's to get some response in JSOn and parse it to send the email with the details in there.
I got the basic walking skeleton of console App and I wanted to know how do I handle exceptions here, in the calling methods or the called methods. Also I would like advise on best practices on separating my code into multiple files if needed. Below is the code.
Program.cs
static void Main(string args)
{
CustomConfigData customSection = ConfigurationManager.GetSection(CustomConfigData.SectionName) as CustomConfigData;
string ToAddressList = "", MsgBody = "", MsgSubject = "", CCAddressList = "";
string fromAddress= "Reminder@mycompany.com";
if (customSection != null)
{
foreach (URLEndpointElement urlendpoint in customSection.Urlendpoints)
{
//Console.WriteLine($" URL Type = {urlendpoint.Type}, URL Value = {urlendpoint.Address}");
// string response = GetResponse(urlendpoint.Address).ToString();
string samplejson = @"{'To': 'abcd@mycompany.com','Cc': 'hijk@mycompany.com,efgh@mycompany.com','Subject': 'Sample Email','Body': 'Sample Email from the program. Pls Ignore..'}";
ParseJSONResponse(samplejson , ref ToAddressList, ref MsgBody, ref MsgSubject, ref CCAddressList);
Console.WriteLine(response);
SendEmail(fromAddress, ToAddressList, CCAddressList, MsgSubject, MsgBody);
}
}
}
private static void ParseJSONResponse(string urlResponse, ref string toAddressList, ref string msgBody, ref string msgSubject, ref string cCAddressList)
{
JObject jsonresponse = JObject.Parse(urlResponse);
toAddressList = jsonresponse["To"].ToString();
cCAddressList= jsonresponse["Cc"].ToString();
msgSubject = jsonresponse["Subject"].ToString();
msgBody = jsonresponse["Body"].ToString();
}
//creating a non blocking GetMethod for URL
private static async Task<string> GetResponse(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
return await reader.ReadToEndAsync();
}
}
private static void SendEmail(string FromAddress, string ToAddress, string CCAddress, string Subject, string Body)
{
SmtpClient smtp = new SmtpClient() {
Host = "mail.mycompany.com",
Port = 25,
};
MailMessage mailmsg = new MailMessage(FromAddress, ToAddress, Subject, Body);
//Assuming To and CC addresses are separated by ,
mailmsg.To.Add(ToAddress);
mailmsg.CC.Add(CCAddress);
smtp.Send(mailmsg);
}
The Configuration data class is in a separate folder under Configuration in the Solution.
Please code review this with best practices on Exception handling.
c# error-handling
$endgroup$
add a comment |
$begingroup$
I am reading a custom config section in my app.config and iterating through the URL's to get some response in JSOn and parse it to send the email with the details in there.
I got the basic walking skeleton of console App and I wanted to know how do I handle exceptions here, in the calling methods or the called methods. Also I would like advise on best practices on separating my code into multiple files if needed. Below is the code.
Program.cs
static void Main(string args)
{
CustomConfigData customSection = ConfigurationManager.GetSection(CustomConfigData.SectionName) as CustomConfigData;
string ToAddressList = "", MsgBody = "", MsgSubject = "", CCAddressList = "";
string fromAddress= "Reminder@mycompany.com";
if (customSection != null)
{
foreach (URLEndpointElement urlendpoint in customSection.Urlendpoints)
{
//Console.WriteLine($" URL Type = {urlendpoint.Type}, URL Value = {urlendpoint.Address}");
// string response = GetResponse(urlendpoint.Address).ToString();
string samplejson = @"{'To': 'abcd@mycompany.com','Cc': 'hijk@mycompany.com,efgh@mycompany.com','Subject': 'Sample Email','Body': 'Sample Email from the program. Pls Ignore..'}";
ParseJSONResponse(samplejson , ref ToAddressList, ref MsgBody, ref MsgSubject, ref CCAddressList);
Console.WriteLine(response);
SendEmail(fromAddress, ToAddressList, CCAddressList, MsgSubject, MsgBody);
}
}
}
private static void ParseJSONResponse(string urlResponse, ref string toAddressList, ref string msgBody, ref string msgSubject, ref string cCAddressList)
{
JObject jsonresponse = JObject.Parse(urlResponse);
toAddressList = jsonresponse["To"].ToString();
cCAddressList= jsonresponse["Cc"].ToString();
msgSubject = jsonresponse["Subject"].ToString();
msgBody = jsonresponse["Body"].ToString();
}
//creating a non blocking GetMethod for URL
private static async Task<string> GetResponse(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
return await reader.ReadToEndAsync();
}
}
private static void SendEmail(string FromAddress, string ToAddress, string CCAddress, string Subject, string Body)
{
SmtpClient smtp = new SmtpClient() {
Host = "mail.mycompany.com",
Port = 25,
};
MailMessage mailmsg = new MailMessage(FromAddress, ToAddress, Subject, Body);
//Assuming To and CC addresses are separated by ,
mailmsg.To.Add(ToAddress);
mailmsg.CC.Add(CCAddress);
smtp.Send(mailmsg);
}
The Configuration data class is in a separate folder under Configuration in the Solution.
Please code review this with best practices on Exception handling.
c# error-handling
$endgroup$
$begingroup$
I'm afraid your question cannot be answered here becuase it's OK to ask Does this code follow common best practices?, but not What is the best practice regarding X?. And since you are asking about how to implement error handling without actually having implemented it yet, your question is off-topic. Please also see What types of questions should I avoid asking?.
$endgroup$
– t3chb0t
9 hours ago
add a comment |
$begingroup$
I am reading a custom config section in my app.config and iterating through the URL's to get some response in JSOn and parse it to send the email with the details in there.
I got the basic walking skeleton of console App and I wanted to know how do I handle exceptions here, in the calling methods or the called methods. Also I would like advise on best practices on separating my code into multiple files if needed. Below is the code.
Program.cs
static void Main(string args)
{
CustomConfigData customSection = ConfigurationManager.GetSection(CustomConfigData.SectionName) as CustomConfigData;
string ToAddressList = "", MsgBody = "", MsgSubject = "", CCAddressList = "";
string fromAddress= "Reminder@mycompany.com";
if (customSection != null)
{
foreach (URLEndpointElement urlendpoint in customSection.Urlendpoints)
{
//Console.WriteLine($" URL Type = {urlendpoint.Type}, URL Value = {urlendpoint.Address}");
// string response = GetResponse(urlendpoint.Address).ToString();
string samplejson = @"{'To': 'abcd@mycompany.com','Cc': 'hijk@mycompany.com,efgh@mycompany.com','Subject': 'Sample Email','Body': 'Sample Email from the program. Pls Ignore..'}";
ParseJSONResponse(samplejson , ref ToAddressList, ref MsgBody, ref MsgSubject, ref CCAddressList);
Console.WriteLine(response);
SendEmail(fromAddress, ToAddressList, CCAddressList, MsgSubject, MsgBody);
}
}
}
private static void ParseJSONResponse(string urlResponse, ref string toAddressList, ref string msgBody, ref string msgSubject, ref string cCAddressList)
{
JObject jsonresponse = JObject.Parse(urlResponse);
toAddressList = jsonresponse["To"].ToString();
cCAddressList= jsonresponse["Cc"].ToString();
msgSubject = jsonresponse["Subject"].ToString();
msgBody = jsonresponse["Body"].ToString();
}
//creating a non blocking GetMethod for URL
private static async Task<string> GetResponse(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
return await reader.ReadToEndAsync();
}
}
private static void SendEmail(string FromAddress, string ToAddress, string CCAddress, string Subject, string Body)
{
SmtpClient smtp = new SmtpClient() {
Host = "mail.mycompany.com",
Port = 25,
};
MailMessage mailmsg = new MailMessage(FromAddress, ToAddress, Subject, Body);
//Assuming To and CC addresses are separated by ,
mailmsg.To.Add(ToAddress);
mailmsg.CC.Add(CCAddress);
smtp.Send(mailmsg);
}
The Configuration data class is in a separate folder under Configuration in the Solution.
Please code review this with best practices on Exception handling.
c# error-handling
$endgroup$
I am reading a custom config section in my app.config and iterating through the URL's to get some response in JSOn and parse it to send the email with the details in there.
I got the basic walking skeleton of console App and I wanted to know how do I handle exceptions here, in the calling methods or the called methods. Also I would like advise on best practices on separating my code into multiple files if needed. Below is the code.
Program.cs
static void Main(string args)
{
CustomConfigData customSection = ConfigurationManager.GetSection(CustomConfigData.SectionName) as CustomConfigData;
string ToAddressList = "", MsgBody = "", MsgSubject = "", CCAddressList = "";
string fromAddress= "Reminder@mycompany.com";
if (customSection != null)
{
foreach (URLEndpointElement urlendpoint in customSection.Urlendpoints)
{
//Console.WriteLine($" URL Type = {urlendpoint.Type}, URL Value = {urlendpoint.Address}");
// string response = GetResponse(urlendpoint.Address).ToString();
string samplejson = @"{'To': 'abcd@mycompany.com','Cc': 'hijk@mycompany.com,efgh@mycompany.com','Subject': 'Sample Email','Body': 'Sample Email from the program. Pls Ignore..'}";
ParseJSONResponse(samplejson , ref ToAddressList, ref MsgBody, ref MsgSubject, ref CCAddressList);
Console.WriteLine(response);
SendEmail(fromAddress, ToAddressList, CCAddressList, MsgSubject, MsgBody);
}
}
}
private static void ParseJSONResponse(string urlResponse, ref string toAddressList, ref string msgBody, ref string msgSubject, ref string cCAddressList)
{
JObject jsonresponse = JObject.Parse(urlResponse);
toAddressList = jsonresponse["To"].ToString();
cCAddressList= jsonresponse["Cc"].ToString();
msgSubject = jsonresponse["Subject"].ToString();
msgBody = jsonresponse["Body"].ToString();
}
//creating a non blocking GetMethod for URL
private static async Task<string> GetResponse(string url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
return await reader.ReadToEndAsync();
}
}
private static void SendEmail(string FromAddress, string ToAddress, string CCAddress, string Subject, string Body)
{
SmtpClient smtp = new SmtpClient() {
Host = "mail.mycompany.com",
Port = 25,
};
MailMessage mailmsg = new MailMessage(FromAddress, ToAddress, Subject, Body);
//Assuming To and CC addresses are separated by ,
mailmsg.To.Add(ToAddress);
mailmsg.CC.Add(CCAddress);
smtp.Send(mailmsg);
}
The Configuration data class is in a separate folder under Configuration in the Solution.
Please code review this with best practices on Exception handling.
c# error-handling
c# error-handling
asked 9 hours ago
ProgrammerzzzProgrammerzzz
1092
1092
$begingroup$
I'm afraid your question cannot be answered here becuase it's OK to ask Does this code follow common best practices?, but not What is the best practice regarding X?. And since you are asking about how to implement error handling without actually having implemented it yet, your question is off-topic. Please also see What types of questions should I avoid asking?.
$endgroup$
– t3chb0t
9 hours ago
add a comment |
$begingroup$
I'm afraid your question cannot be answered here becuase it's OK to ask Does this code follow common best practices?, but not What is the best practice regarding X?. And since you are asking about how to implement error handling without actually having implemented it yet, your question is off-topic. Please also see What types of questions should I avoid asking?.
$endgroup$
– t3chb0t
9 hours ago
$begingroup$
I'm afraid your question cannot be answered here becuase it's OK to ask Does this code follow common best practices?, but not What is the best practice regarding X?. And since you are asking about how to implement error handling without actually having implemented it yet, your question is off-topic. Please also see What types of questions should I avoid asking?.
$endgroup$
– t3chb0t
9 hours ago
$begingroup$
I'm afraid your question cannot be answered here becuase it's OK to ask Does this code follow common best practices?, but not What is the best practice regarding X?. And since you are asking about how to implement error handling without actually having implemented it yet, your question is off-topic. Please also see What types of questions should I avoid asking?.
$endgroup$
– t3chb0t
9 hours ago
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216182%2fwhere-should-we-add-exception-handling-here%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f216182%2fwhere-should-we-add-exception-handling-here%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
I'm afraid your question cannot be answered here becuase it's OK to ask Does this code follow common best practices?, but not What is the best practice regarding X?. And since you are asking about how to implement error handling without actually having implemented it yet, your question is off-topic. Please also see What types of questions should I avoid asking?.
$endgroup$
– t3chb0t
9 hours ago