Widzę że brakuje ci podstaw z języka C# . jak dzielisz liczby typu double przez zero to dostajesz dodatnią nieskończoność , ujemną nieskończoność albo NaN - wartość nie będąca liczbą .
Odnośnie wyjątków .
Jak zrobisz takie coś :
using System;
public class Program
{
public static void Main()
{
MetodaA(10, 0);
}
static int MetodaC(int a, int b)
{
return a / b;
}
static int MetodaB(int a, int b)
{
return MetodaC(a, b);
}
static int MetodaA(int a, int b)
{
return MetodaB(a, b);
}
}
to dostaniesz taki komunikat
Wyjątek nieobsłużony: System.DivideByZeroException: Nastąpiła próba podzielenia przez zero.
w Program.MetodaC(Int32 a, Int32 b) w C#\ConsoleApp\Program.cs:wiersz 10
w Program.MetodaB(Int32 a, Int32 b) w C#\ConsoleApp\Program.cs:wiersz 14
w Program.MetodaA(Int32 a, Int32 b) w C#\ConsoleApp\Program.cs:wiersz 18
w Program.Main() w C#\ConsoleApp\Program.cs:wiersz 6
Wyjątek nieobsłużony ani w metodzie A ani w B ani w C ani w Main
Wyjątek jest przekazywany w górę stosu wywolań funkcji.
Jak będziesz chciał przechwycić wyjątek w metodzie A, B lub C to dostaniesz komunikat, że nie wszystkie ścieżki kodu zwracają wartość
więc najlepiej jest przechwycić wyjątek w metodzie Main
using System;
public class Program
{
public static void Main()
{
try
{
MetodaA(10, 2);
}
catch (DivideByZeroException e)
{
Console.WriteLine(e.Message);
}
}
static int MetodaC(int a, int b)
{
return a / b;
}
static int MetodaB(int a, int b)
{
return MetodaC(a, b);
}
static int MetodaA(int a, int b)
{
return MetodaB(a, b);
}
}