ebakhtin 0ab2973478 exceptions1 | 8 月之前 | |
---|---|---|
Program.cs | 8 月之前 | |
lab4_5_exceptions.csproj | 8 月之前 | |
lab4_5_exceptions.sln | 8 月之前 | |
readme.md | 8 月之前 |
int x = 5;
int y = x / 0;
Console.WriteLine($"Результат: {y}");
Console.WriteLine("Конец программы");
Console.Read();
Ошибка:
Unhandled exception. System.DivideByZeroException: Attempted to divide by zero.
at Program.<Main>$(String[] args) in /home/kei/RiderProjects/tryCatch/Program.cs:line 2
Process finished with exit code 134.
try
{
int x = 5;
int y = x / 0;
Console.WriteLine($"Результат: {y}");
}
catch
{
Console.WriteLine("Возникло исключение!");
}
finally
{
Console.WriteLine("Блок finally");
}
Console.WriteLine("Конец программы");
Console.Read();
Вывод:
Возникло исключение!
Блок finally
Конец программы
try
{
int x = 5;
int y = x / 0;
Console.WriteLine($"Результат: {y}");
}
catch
{
Console.WriteLine("Возникло исключение!");
}
Вывод:
Возникло исключение!
Process finished with exit code 0.
try
{
int x = 5;
int y = x / 0;
Console.WriteLine($"Результат: {y}");
}
finally
{
Console.WriteLine("Блок finally");
}
Вывод:
Unhandled exception. System.DivideByZeroException: Attempted to divide by zero.
at Program.<Main>$(String[] args) in C:\Users\jissxdd\Desktop\labs\lab4_5 exceptions\lab4_5 exceptions\Program.cs:line 17
Блок finally
Process finished with exit code -1,073,741,676.
Console.WriteLine("Введите число");
int x;
string input = Console.ReadLine();
if (Int32.TryParse(input, out x))
{
x *= x;
Console.WriteLine("Квадрат числа: " + x);
}
else
{
Console.WriteLine("Некорректный ввод");
}
Console.Read();
Вывод:
Введите число
5a
Некорректный ввод
Process finished with exit code 0.
try
{
int x = 5;
int y = x / 0;
Console.WriteLine($"Результат: {y}");
}
catch(DivideByZeroException)
{
Console.WriteLine("Возникло исключение DivideByZeroException");
}
Вывод:
Возникло исключение DivideByZeroException
Process finished with exit code 0.
try
{
int x = 5;
int y = x / 0;
Console.WriteLine($"Результат: {y}");
}
catch(DivideByZeroException ex)
{
Console.WriteLine($"Возникло исключение {ex.Message}");
}
Вывод:
Возникло исключение Attempted to divide by zero.
Process finished with exit code 0.
int x = 1;
int y = 0;
try
{
int result = x / y;
}
catch(DivideByZeroException) when (y==0 && x == 0)
{
Console.WriteLine("y не должен быть равен 0");
}
catch(DivideByZeroException ex)
{
Console.WriteLine(ex.Message);
}
Вывод:
Attempted to divide by zero.
Process finished with exit code 0.
try
{
int x = 5;
int y = x / 0;
Console.WriteLine($"Результат: {y}");
}
catch (Exception ex)
{
Console.WriteLine($"Исключение: {ex.Message}");
Console.WriteLine($"Метод: {ex.TargetSite}");
Console.WriteLine($"Трассировка стека: {ex.StackTrace}");
}
Console.Read();
Вывод:
Исключение: Attempted to divide by zero.
Метод: Void <Main>$(System.String[])
Трассировка стека: at Program.<Main>$(String[] args) in C:\Users\jissxdd\Desktop\labs\lab4_5 exceptions\lab4_5 exceptions\Program.cs:line 98
try
{
int[] numbers = new int[4];
numbers[7] = 9; // IndexOutOfRangeException
int x = 5;
int y = x / 0; // DivideByZeroException
Console.WriteLine($"Результат: {y}");
}
catch (DivideByZeroException)
{
Console.WriteLine("Возникло исключение DivideByZeroException");
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
Вывод:
Index was outside the bounds of the array.
Process finished with exit code 0.
Unhandled exception. System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Int32'.
at Program.<Main>$(String[] args) in C:\Users\jissxdd\Desktop\labs\lab4_5 exceptions\lab4_5 exceptions\Program.cs:line 137
Process finished with exit code -532,462,766.
Вывод:
Unhandled exception. System.InvalidCastException: Unable to cast object of type 'System.String' to type 'System.Int32'.
at Program.<Main>$(String[] args) in C:\Users\jissxdd\Desktop\labs\lab4_5 exceptions\lab4_5 exceptions\Program.cs:line 137
Process finished with exit code -532,462,766.
try
{
object obj = "you";
int num = (int)obj; // InvalidCastException
Console.WriteLine($"Результат: {num}");
}
catch (DivideByZeroException)
{
Console.WriteLine("Возникло исключение DivideByZeroException");
}
catch (IndexOutOfRangeException)
{
Console.WriteLine("Возникло исключение IndexOutOfRangeException");
}
catch (Exception ex)
{
Console.WriteLine($"Исключение: {ex.Message}");
}
Console.Read();
Вывод:
Исключение: Unable to cast object of type 'System.String' to type 'System.Int32'.
Process finished with exit code 0.
try
{
Person p = new Person { Name = "Tom", Age = 17 };
}
catch (Exception ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
}
Console.Read();
class Person
{
private int age;
public string Name { get; set; }
public int Age
{
get { return age; }
set
{
if (value < 18)
{
throw new Exception("Лицам до 18 регистрация запрещена");
}
else
{
age = value;
}
}
}
}
Вывод:
Ошибка: Лицам до 18 регистрация запрещена
Process finished with exit code 0.
class PersonException : Exception
{
public PersonException(string message)
: base(message)
{ }
}
try
{
Person p = new Person { Name = "Tom", Age = 17 };
}
catch (PersonException ex)
{
Console.WriteLine("Ошибка: " + ex.Message);
}
Console.Read();
class Person
{
private int age;
public int Age
{
get { return age; }
set
{
if (value < 18)
throw new PersonException("Лицам до 18 регистрация запрещена");
else
age = value;
}
}
}
Вывод:
Ошибка: Лицам до 18 регистрация запрещена
Process finished with exit code 0.
class PersonException : ArgumentException
{
public int Value { get;}
public PersonException(string message, int val)
: base(message)
{
Value = val;
}
}
try
{
Person p = new Person { Name = "Tom", Age = 13 };
}
catch (PersonException ex)
{
Console.WriteLine($"Ошибка: {ex.Message}");
Console.WriteLine($"Некорректное значение: {ex.Value}");
}
Console.Read();
class Person
{
public string Name { get; set; }
private int age;
public int Age
{
get { return age; }
set
{
if (value < 18)
throw new PersonException(
"Лицам до 18 регистрация запрещена",
value);
else
age = value;
}
}
}
Вывод:
Ошибка: Лицам до 18 регистрация запрещена
Некорректное значение: 13
Process finished with exit code 0.
try
{
TestClass.Method1();
}
catch (DivideByZeroException ex)
{
Console.WriteLine($"Catch в Main : {ex.Message}");
}
finally
{
Console.WriteLine("Блок finally в Main");
}
Console.WriteLine("Конец метода Main");
Console.Read();
class TestClass
{
public static void Method1()
{
try
{
Method2();
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine($"Catch в Method1 : {ex.Message}");
}
finally
{
Console.WriteLine("Блок finally в Method1");
}
Console.WriteLine("Конец метода Method1");
}
static void Method2()
{
try
{
int x = 8;
int y = x / 0;
}
finally
{
Console.WriteLine("Блок finally в Method2");
}
Console.WriteLine("Конец метода Method2");
}
}
Вывод:
Блок finally в Method2
Блок finally в Method1
Catch в Main : Attempted to divide by zero.
Блок finally в Main
Конец метода Main
try
{
Console.Write("Введите строку: ");
string message = Console.ReadLine();
if (message.Length > 6)
{
throw new Exception(
"Длина строки больше 6 символов");
}
}
catch (Exception e)
{
Console.WriteLine($"Ошибка: {e.Message}");
}
Console.Read();
Вывод:
Введите строку: 1234567
Ошибка: Длина строки больше 6 символов
Process finished with exit code 0.
try
{
try
{
Console.Write("Введите строку: ");
string message = Console.ReadLine();
if (message.Length > 6)
{
throw new Exception(
"Длина строки больше 6 символов");
}
}
catch
{
Console.WriteLine("Возникло исключение");
throw;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Вывод:
Введите строку: 1234567
Возникло исключение
Длина строки больше 6 символов
Process finished with exit code 0.
int? a = 42;
if (a is int valueOfA)
{
Console.WriteLine($"a is {valueOfA}");
}
else
{
Console.WriteLine("a does not have a value");
}
Вывод:
a is 42
int? b = 10;
if (b.HasValue)
{
Console.WriteLine($"b is {b.Value}");
}
else
{
Console.WriteLine("b does not have a value");
}
Вывод:
b is 10
int? c = 7;
if (c != null)
{
Console.WriteLine($"c is {c.Value}");
}
else
{
Console.WriteLine("c does not have a value");
}
Вывод:
c is 7
int? a = 28;
int b = a ?? -1;
Console.WriteLine($"b is {b}"); // output: b is 28
int? c = null;
int d = c ?? -1;
Console.WriteLine($"d is {d}"); // output: d is -1
Вывод:
b is 28
d is -1