что я пытаюсь сделать, получить пользовательский ввод из текстового поля, преобразовать его в int и затем использовать это. Я получил все, чтобы работать, кроме попытки и уловки. если человек ставит букву вместо числа. с кодом ниже он всегда что-то ловит. я понятия не имею, что ловит что-то. я вынул тест bool, и если я вложу письмо, он просто выбросит исключение, а затем перейдет к звуку. другой, ожидающий действительного ввода. , пожалуйста, извините мой грязный код, я все еще начинающий программист на C#: D спасибо в продвинутом!Попытайтесь поймать, всегда поймать исключение
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
bool tone = false;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
bool test = true;
speedInput.Clear();
beep.Clear();
int beepspeed = 90;
int speed = 100;
string speedtext = this.speedInput.Text;
string beeptext = this.beep.Text;
try
{
test = true;
beepspeed = Convert.ToInt32(beeptext);
speed = Convert.ToInt32(speedtext);
}
catch (Exception)
{
MessageBox.Show("numbers above 37 only!!");
test = false;
}
if (test)
{
for (int i = 0; i < beepspeed; i++)
{
if (this.tone)
{
Random ran = new Random();
int rand = ran.Next(400, 3000);
Console.Beep(rand, speed);
}
else
{
Console.Beep(1000, speed);
}
}
}
}
private void radioButtonYes_CheckedChanged(object sender, EventArgs e)
{
this.tone = true;
}
private void radioButtonNo_CheckedChanged(object sender, EventArgs e)
{
this.tone = false;
}
}
}
Как новичок, Я бы начал и начал печатать исключение. – Ofiris
Поместите точку останова в блок catch, затем, когда она попадет в точку останова, наведите указатель мыши на подчеркивание рядом со словом Exception. Вы должны быть в состоянии подтянуть некоторые детали исключения, сообщение и stacktrace было бы здорово опубликовать. –