Member 14329532 Ответов: 3

Как решить ожидаемый улов или финал


это мой код :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExceptionHandling
{
    class Program
    {
        static void Main(string[] args)
        {
            double bil1, bil2, hasil = 0;
            try
            {
                Console.Write("Masukan Bilangan 1:");
                bil1 = Convert.ToDouble(Console.ReadLine());
                Console.Write("Masukan Bilangan 2:");
                bil2 = Convert.ToDouble(Console.ReadLine());
                hasil = bil1 / bil2;
                Console.WriteLine("Hasilnya :" + hasil.ToString());
            }
            catch (FormatException fex)
            {
                Console.WriteLine("Error : Format Input tidak sesuai..");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error : " + ex.Message);
            }
            byte nilai = 0;
            try
            {
                Console.Write("Masukan Nilai :");
                nilai = Convert.ToByte(Console.ReadLine());
            }
            catch (OverflowException ofex)
            {
                Console.WriteLine("Error : Tipe data tidak cukup menampung nilai");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error :" + ex.Message);

                Lingkaran objLing = new Lingkaran();
                try
                {
                    Console.Write("Masukan diameter :");
                    objLing.Diameter = Convert.ToDouble(Console.ReadLine());
                }
            }
        }
    }
}

What I have tried:

help me.. How to solve expected catch or finaly my code

Christian Graus

Он ожидает общего catch или finally в конце, когда тип исключения неизвестен. Ошибка означает то, что она говорит :)

3 Ответов

Рейтинг:
1

Richard Deeming

У тебя есть try блок в конце которого нет ни одного а catch блок ни а finally блок:

Цитата:
catch (Exception ex)
{
    Console.WriteLine("Error :" + ex.Message);
    
    Lingkaran objLing = new Lingkaran();
    try
    {
        Console.Write("Masukan diameter :");
        objLing.Diameter = Convert.ToDouble(Console.ReadLine());
    }
    
    // No "catch" or "finally" block here...
    
}

Чтобы исправить синтаксическую ошибку, либо добавьте catch или finally заблокируйте или удалите устройство. try блок.
catch (Exception ex)
{
    Console.WriteLine("Error :" + ex.Message);
    
    Lingkaran objLing = new Lingkaran();
    Console.Write("Masukan diameter :");
    objLing.Diameter = Convert.ToDouble(Console.ReadLine());
}


Но, как сказал Билл, лучше использовать Double.TryParse чтобы попытаться преобразовать строку в число, а не использовать Convert.ToDouble и поймать исключение.
Двойной.Метод TryParse (Система) | Microsoft Docs[^]


BillWoodruff

+5

Рейтинг:
0

BillWoodruff

Вместо использования Try/Catch используйте операторы преобразования, которые не выдают ошибку, если входные данные неверны:

using System;

namespace YourConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int bill1;

            int tryLimit = 3;

            int tryCnt = 0;

            Console.WriteLine("enter an integer");

            while (tryCnt < tryLimit && !Int32.TryParse(Console.ReadLine(), out bill1))
            {
                tryCnt++;

                // invalid input
                if (tryCnt < tryLimit) Console.WriteLine("invalid input ... enter an integer");

            }

            if (tryCnt == tryLimit)
            {
                Console.WriteLine("too many incorrect entry attempts");
                Console.Write("?");
                Console.ReadLine();
                // exit the app here ?
            }
            else
            {
                // you now have a valid integer in the variable 'bill1
            }
        }
    }
}


Рейтинг:
0

Christian Graus

Он ожидает общего catch или finally в конце, когда тип исключения неизвестен. Ошибка означает то, что она говорит :)