using System; namespace MyFirstProgram { class Program { static void Main(string[] args) { // exception = errors that occur during execution // try = try some code that is considered "dangerous" // catch = catches and handles exceptions when they occur // finally = always executes regardless if exception is caught or not int x; int y; double result; try { Console.Write("Enter number 1: "); x = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter number 2: "); y = Convert.ToInt32(Console.ReadLine()); result = x / y; Console.WriteLine("result: " + result); } catch (FormatException e) { Console.WriteLine("Enter ONLY numbers PLEASE!"); } catch (DivideByZeroException e) { Console.WriteLine("You can't divide by zero! IDIOT!"); } catch (Exception e) { Console.WriteLine("Something went wrong!"); } finally { Console.WriteLine("Thanks for visiting!"); } Console.ReadKey(); } } }
Bro, what about using the general Exception catch all and then you can use e.Message and do something like this: catch (Exception e) { Console.WriteLine("something went wrong: " + e.Message); } and you will have one exception writing out the specifics in the Message property.
Good teaching, I have one question though if you could answer it, why do we have "finally" if it'll print "all ok" anyways, I thought it works as "return 0" means "no error found", but it's printing on anything, what's the use of it?
I think you will already know it but if someone does not: You can add the e to your writeline Console.WriteLine($"Error: {e}"); to see what went wrong.
If you write good code you should not have any exceptions right? I just made my code so that there will never be exceptions if you try to do something wrobg 😅
Larger your code, more unstable or unpredicted behaviours, eventually it will raise exceptions. But actually I never saw try {} catch () {} seriously used anywhere.. It is usually just check with if or smth
you can use bool date type and a loop to ensure the variables were taken in a correct format like this for example - int number1; int number2; bool success = false; while (!success) { try { Console.WriteLine("Enter number one"); number1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); Console.WriteLine("Enter number two"); number2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); Console.WriteLine($"Your total is {number1 + number2}"); success = true; }catch (Exception) { Console.WriteLine("Please enter an integer"); } }
you can use bool date type and a loop to ensure the variables were taken in a correct format like this for example - int number1; int number2; bool success = false; while (!success) { try { Console.WriteLine("Enter number one"); number1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); Console.WriteLine("Enter number two"); number2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); Console.WriteLine($"Your total is {number1 + number2}"); success = true; }catch (Exception) { Console.WriteLine("Please enter an integer"); } }
I used this for it int number; int number2; int result; string re; bool reset = true; while (reset) { try { Console.WriteLine("Enter the number one!"); number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter the number one!"); number2 = Convert.ToInt32(Console.ReadLine()); result = number + number2; Console.WriteLine(result); ; } catch (FormatException e) { Console.WriteLine("Wrong input! " + e.Message); Console.WriteLine("Would you like to reset ? (Yes/No)"); re = Console.ReadLine().ToLower(); if (re == "yes") { reset = true; } else { Console.WriteLine("Thanks for using!"); reset = false; } } }
How to prevent the exception from happening at all? So instead of just stopping the program, it looped back to re asking the number. Something like: while (age != 'a number or something') //something that telling age must be a number otherwise it looped back { Console.WriteLine("Not a number dummy, type again!") age = Convert.ToInt32(Console.ReadLine()); } Is that even possible?
At the end of the catch, write "goto" + some name like "start again", and then just write "name you chose" and colon. When the catch is executed, and thus the error happens, it will send the code to that location.
using System;
namespace MyFirstProgram
{
class Program
{
static void Main(string[] args)
{
// exception = errors that occur during execution
// try = try some code that is considered "dangerous"
// catch = catches and handles exceptions when they occur
// finally = always executes regardless if exception is caught or not
int x;
int y;
double result;
try
{
Console.Write("Enter number 1: ");
x = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter number 2: ");
y = Convert.ToInt32(Console.ReadLine());
result = x / y;
Console.WriteLine("result: " + result);
}
catch (FormatException e)
{
Console.WriteLine("Enter ONLY numbers PLEASE!");
}
catch (DivideByZeroException e)
{
Console.WriteLine("You can't divide by zero! IDIOT!");
}
catch (Exception e)
{
Console.WriteLine("Something went wrong!");
}
finally
{
Console.WriteLine("Thanks for visiting!");
}
Console.ReadKey();
}
}
}
Did a better job at explaining this in a 5 minute video than my proffessor did in a whole lecture!
Same as you. I feel like my college was actually on TH-cam.
bro i watched your code since 3 year ago and i will be graduated soon you helped me so much in the university thanks so much
one point is that we can also make use of e.Message to show what the actual exception error occurred. awesome video bro code🙂
"Not considered good practice" Someone should tell Microsoft, omfg.
Bro, what about using the general Exception catch all and then you can use e.Message and do something like this:
catch (Exception e)
{
Console.WriteLine("something went wrong: " + e.Message);
}
and you will have one exception writing out the specifics in the Message property.
This has been super helpful, what a legend!
Think you are gonna help me alot in my education - thanks for the vid ::)
Good teaching, I have one question though if you could answer it, why do we have "finally" if it'll print "all ok" anyways, I thought it works as "return 0" means "no error found", but it's printing on anything, what's the use of it?
you'r so good, BRO!
Oh btw is there reason why we typed "e" after exceptions ? I tried without using it and looks like program works perfectly fine.
I think you will already know it but if someone does not: You can add the e to your writeline Console.WriteLine($"Error: {e}"); to see what went wrong.
Thanks for the video Bro.
You're the real Bro, Bro.👌👌
Superb broski
!
Thanks for the video!
Thanks Bro!
Thanks For The Video Mate
in an exemption check
when bro used exemption e, is is tied to checks specifically? why e? are there other things that can be used?
for the algorithm as always!
Amazing SIR!
Thanks
I like you doggo
thanks, bro.
Thanks Bro🤗
bro really just sum up 40 min video from my prof in 5 mins.
If you write good code you should not have any exceptions right? I just made my code so that there will never be exceptions if you try to do something wrobg 😅
Larger your code, more unstable or unpredicted behaviours, eventually it will raise exceptions.
But actually I never saw try {} catch () {} seriously used anywhere..
It is usually just check with if or smth
❤
Thanks bro
👏🙏👌
Gracias hermano Call of duty
lesson check😇
If an exception is caught and fixed how do I make the code try again from were it last was?
maybe you can use an if statement? idk
you can use bool date type and a loop to ensure the variables were taken in a correct format like this for example -
int number1;
int number2;
bool success = false;
while (!success) {
try
{
Console.WriteLine("Enter number one");
number1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
Console.WriteLine("Enter number two");
number2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
Console.WriteLine($"Your total is {number1 + number2}");
success = true;
}catch (Exception)
{
Console.WriteLine("Please enter an integer");
}
}
you can use bool date type and a loop to ensure the variables were taken in a correct format like this for example -
int number1;
int number2;
bool success = false;
while (!success) {
try
{
Console.WriteLine("Enter number one");
number1 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
Console.WriteLine("Enter number two");
number2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
Console.WriteLine($"Your total is {number1 + number2}");
success = true;
}catch (Exception)
{
Console.WriteLine("Please enter an integer");
}
}
What we can do to run from the beginning after catch the exception?
I used this for it
int number;
int number2;
int result;
string re;
bool reset = true;
while (reset) {
try
{
Console.WriteLine("Enter the number one!");
number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter the number one!");
number2 = Convert.ToInt32(Console.ReadLine());
result = number + number2;
Console.WriteLine(result); ;
}
catch (FormatException e)
{
Console.WriteLine("Wrong input! " + e.Message);
Console.WriteLine("Would you like to reset ? (Yes/No)");
re = Console.ReadLine().ToLower();
if (re == "yes")
{
reset = true;
}
else
{
Console.WriteLine("Thanks for using!");
reset = false;
}
}
}
noice
whats the e for?
done
We can also use goto statement right? or is it not recommended? which method is better for error handling?
Tip for you: .bat sintax is bad and i dont know about good use of goto in C#
Random commend down below.
Lol 😅
How to prevent the exception from happening at all? So instead of just stopping the program, it looped back to re asking the number. Something like:
while (age != 'a number or something') //something that telling age must be a number otherwise it looped back
{
Console.WriteLine("Not a number dummy, type again!")
age = Convert.ToInt32(Console.ReadLine());
}
Is that even possible?
At the end of the catch, write "goto" + some name like "start again", and then just write "name you chose" and colon. When the catch is executed, and thus the error happens, it will send the code to that location.