نمایش نتایج 1 تا 5 از 5

نام تاپیک: ارور دادن با try catch

  1. #1
    کاربر دائمی آواتار silverfox
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    سن
    32
    پست
    559

    ارور دادن با try catch

    من یه برنامه ساده برای یکی از دوستام نوشتم که میاد کد های mRNA رو می گیره اسم کاملش رو می ده یعنی یه ورودی می گیره(رشته)بعد 3تا 3تا جدا می کنه هر 3تا یه معنی داره ترجمه اش می کنه با switch نوشتم اینو...حالا بعضی 3حرفی ها معنی ندارن یعنی مثلا ssd رو اگه وسط رشته باشه ترجمه نمی کنه و جاش رو خالی میذاری ولی اگه توی کل رشته هیچ کدوم از ورودی ها صحیح نباشن ارور میده و از برنامه میاد بیرون در صورتی که هم توی switchم default دارم و هم از try catch استفاده کردم دوستان یه نگاه میندازن ببینن مشکل از کجاس؟

    using System;

    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace Zist
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    comboBox1.SelectedItem = "Complete names";
    }
    public void convertEngineComplete(string inputStr)
    {
    try
    {
    switch (inputStr)
    {
    case "uuu":
    textBox2.Text += "Phenylalanine-";
    break;
    case "uuc":
    textBox2.Text += "Phenylalanine-";
    break;
    case "uua":
    textBox2.Text += "Leucine-";
    break;
    case "uug":
    textBox2.Text += "Leucine-";
    break;
    case "cuu":
    textBox2.Text += "Leucine-";
    break;
    case "cuc":
    textBox2.Text += "Leucine-";
    break;
    case "cua":
    textBox2.Text += "Leucine-";
    break;
    case "cug":
    textBox2.Text += "Leucine-";
    break;
    case "auu":
    textBox2.Text += "Isoleucine-";
    break;
    case "auc":
    textBox2.Text += "Isoleucine-";
    break;
    case "aua":
    textBox2.Text += "Isoleucine-";
    break;
    case "aug":
    textBox2.Text += "*Methionine-";
    break;
    case "guu":
    textBox2.Text += "Valine-";
    break;
    case "guc":
    textBox2.Text += "*Valine-";
    break;
    case "gua":
    textBox2.Text += "Valine-";
    break;
    case "gug":
    textBox2.Text += "Valine-";
    break;
    case "ucu":
    textBox2.Text += "Serine-";
    break;
    case "ucc":
    textBox2.Text += "Serine-";
    break;
    case "uca":
    textBox2.Text += "Serine-";
    break;
    case "ucg":
    textBox2.Text += "Serine-";
    break;
    case "ccu":
    textBox2.Text += "Proline-";
    break;
    case "ccc":
    textBox2.Text += "Proline-";
    break;
    case "cca":
    textBox2.Text += "Proline-";
    break;
    case "ccg":
    textBox2.Text += "Proline-";
    break;
    case "acu":
    textBox2.Text += "Threonine-";
    break;
    case "acc":
    textBox2.Text += "Threonine-";
    break;
    case "aca":
    textBox2.Text += "Threonine-";
    break;
    case "acg":
    textBox2.Text += "Threonine-";
    break;
    case "gcu":
    textBox2.Text += "Alanine-";
    break;
    case "gcc":
    textBox2.Text += "Alanine-";
    break;
    case "gca":
    textBox2.Text += "Alanine-";
    break;
    case "gcg":
    textBox2.Text += "Alanine-";
    break;
    case "uau":
    textBox2.Text += "Tyrosine-";
    break;
    case "uac":
    textBox2.Text += "Tyrosine-";
    break;
    case "uaa":
    textBox2.Text += "|-";
    break;
    case "uag":
    textBox2.Text += "|-";
    break;
    case "cau":
    textBox2.Text += "Histidine-";
    break;
    case "cac":
    textBox2.Text += "Histidine-";
    break;
    case "caa":
    textBox2.Text += "Glutamine-";
    break;
    case "cag":
    textBox2.Text += "Glutamine-";
    break;
    case "aau":
    textBox2.Text += "Asparagine-";
    break;
    case "aac":
    textBox2.Text += "Asparagine-";
    break;
    case "aaa":
    textBox2.Text += "Lysine-";
    break;
    case "aag":
    textBox2.Text += "Lysine-";
    break;
    case "gaa":
    textBox2.Text += "Glutamic acid-";
    break;
    case "gag":
    textBox2.Text += "Glutamic acid-";
    break;
    case "ugu":
    textBox2.Text += "Cysteine-";
    break;
    case "ugc":
    textBox2.Text += "Cysteine-";
    break;
    case "uga":
    textBox2.Text += "|-";
    break;
    case "ugg":
    textBox2.Text += "Tryptophan-";
    break;
    case "cgu":
    textBox2.Text += "Arginine-";
    break;
    case "cgc":
    textBox2.Text += "Arginine-";
    break;
    case "cga":
    textBox2.Text += "Arginine-";
    break;
    case "cgg":
    textBox2.Text += "Arginine-";
    break;
    case "agu":
    textBox2.Text += "Serine-";
    break;
    case "agc":
    textBox2.Text += "Serine-";
    break;
    case "aga":
    textBox2.Text += "Arginine-";
    break;
    case "agg":
    textBox2.Text += "Arginine-";
    break;
    case "ggu":
    textBox2.Text += "Glycine-";
    break;
    case "ggc":
    textBox2.Text += "Glycine-";
    break;
    case "gga":
    textBox2.Text += "Glycine-";
    break;
    case "ggg":
    textBox2.Text += "Glycine-";
    break;
    default:
    break;
    }
    }
    catch
    {
    MessageBox.Show("Invalid input!","Error");
    textBox2.Text = "";
    }
    }
    public void convertEngineShort(string inputStr)
    {
    try
    {
    switch (inputStr)
    {
    case "uuu":
    textBox2.Text += "Phe-";
    break;
    case "uuc":
    textBox2.Text += "Phe-";
    break;
    case "uua":
    textBox2.Text += "Leu-";
    break;
    case "uug":
    textBox2.Text += "Leu-";
    break;
    case "cuu":
    textBox2.Text += "Leu-";
    break;
    case "cuc":
    textBox2.Text += "Leu-";
    break;
    case "cua":
    textBox2.Text += "Leu-";
    break;
    case "cug":
    textBox2.Text += "Leu-";
    break;
    case "auu":
    textBox2.Text += "Ile-";
    break;
    case "auc":
    textBox2.Text += "Ile-";
    break;
    case "aua":
    textBox2.Text += "Ile-";
    break;
    case "aug":
    textBox2.Text += "*Met-";
    break;
    case "guu":
    textBox2.Text += "Val-";
    break;
    case "guc":
    textBox2.Text += "*Val-";
    break;
    case "gua":
    textBox2.Text += "Val-";
    break;
    case "gug":
    textBox2.Text += "Val-";
    break;
    case "ucu":
    textBox2.Text += "Ser-";
    break;
    case "ucc":
    textBox2.Text += "Ser-";
    break;
    case "uca":
    textBox2.Text += "Ser-";
    break;
    case "ucg":
    textBox2.Text += "Ser-";
    break;
    case "ccu":
    textBox2.Text += "Pro-";
    break;
    case "ccc":
    textBox2.Text += "Pro-";
    break;
    case "cca":
    textBox2.Text += "Pro-";
    break;
    case "ccg":
    textBox2.Text += "Pro-";
    break;
    case "acu":
    textBox2.Text += "Thr-";
    break;
    case "acc":
    textBox2.Text += "Thr-";
    break;
    case "aca":
    textBox2.Text += "Thr-";
    break;
    case "acg":
    textBox2.Text += "Thr-";
    break;
    case "gcu":
    textBox2.Text += "Ala-";
    break;
    case "gcc":
    textBox2.Text += "Ala-";
    break;
    case "gca":
    textBox2.Text += "Ala-";
    break;
    case "gcg":
    textBox2.Text += "Ala-";
    break;
    case "uau":
    textBox2.Text += "Tyr-";
    break;
    case "uac":
    textBox2.Text += "Tyr-";
    break;
    case "uaa":
    textBox2.Text += "|-";
    break;
    case "uag":
    textBox2.Text += "|-";
    break;
    case "cau":
    textBox2.Text += "Histidine-";
    break;
    case "cac":
    textBox2.Text += "His-";
    break;
    case "caa":
    textBox2.Text += "Gln-";
    break;
    case "cag":
    textBox2.Text += "Gln-";
    break;
    case "aau":
    textBox2.Text += "Asn-";
    break;
    case "aac":
    textBox2.Text += "Asn-";
    break;
    case "aaa":
    textBox2.Text += "Lys-";
    break;
    case "aag":
    textBox2.Text += "Lys-";
    break;
    case "gaa":
    textBox2.Text += "Glu-";
    break;
    case "gag":
    textBox2.Text += "Glu-";
    break;
    case "ugu":
    textBox2.Text += "Cys-";
    break;
    case "ugc":
    textBox2.Text += "Cys-";
    break;
    case "uga":
    textBox2.Text += "|-";
    break;
    case "ugg":
    textBox2.Text += "Trp-";
    break;
    case "cgu":
    textBox2.Text += "Arg-";
    break;
    case "cgc":
    textBox2.Text += "Arg-";
    break;
    case "cga":
    textBox2.Text += "Arg-";
    break;
    case "cgg":
    textBox2.Text += "Arg-";
    break;
    case "agu":
    textBox2.Text += "Ser-";
    break;
    case "agc":
    textBox2.Text += "Ser-";
    break;
    case "aga":
    textBox2.Text += "Arg-";
    break;
    case "agg":
    textBox2.Text += "Arg-";
    break;
    case "ggu":
    textBox2.Text += "Gly-";
    break;
    case "ggc":
    textBox2.Text += "Gly-";
    break;
    case "gga":
    textBox2.Text += "Gly-";
    break;
    case "ggg":
    textBox2.Text += "Gly-";
    break;
    default:
    break;
    }
    }
    catch
    {
    MessageBox.Show("Invalid input!","Error");
    textBox2.Text = "";
    }
    }
    private void menuItem1_Click(object sender, EventArgs e)
    {
    textBox2.Text = "";
    if (textBox1.Text == "")
    {
    MessageBox.Show("You have to enter a string.", "Null input");
    }
    else if (textBox1.Text.Length % 3 == 0)
    {
    if (comboBox1.SelectedItem.ToString() == "Complete names")
    {
    string[] inputStr = new String[(textBox1.Text.Length / 3)];
    for (int i = 0; i < (textBox1.Text.Length / 3); i++)
    {
    int strLenght = 3 * i;
    inputStr[i] = textBox1.Text.Substring(strLenght, 3);
    convertEngineComplete(inputStr[i]);
    }
    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
    }
    else if (comboBox1.SelectedItem.ToString() == "Short names")
    {
    string[] inputStr = new String[(textBox1.Text.Length / 3)];
    for (int i = 0; i < (textBox1.Text.Length / 3); i++)
    {
    int strLenght = 3 * i;
    inputStr[i] = textBox1.Text.Substring(strLenght, 3);
    convertEngineShort(inputStr[i]);
    }
    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
    }
    }
    else
    {
    MessageBox.Show("Check your input.", "Error");
    }
    }
    private void menuItem4_Click(object sender, EventArgs e)
    {
    this.Close();
    }

    private void menuItem3_Click(object sender, EventArgs e)
    {
    MessageBox.Show("...", "About");
    }
    }
    }
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر جدید آواتار rahmana
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    سنندج
    پست
    28

    نقل قول: ارور دادن با try catch

    سلام اينكه خيلي راحته
    please send me the error number and error discription
    i sending you the answer
    ok?

  3. #3
    کاربر دائمی آواتار silverfox
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    سن
    32
    پست
    559

    نقل قول: ارور دادن با try catch


    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.ArgumentOutOfRangeException: Length cannot be less than zero.
    Parameter name: length
    at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
    at System.String.Substring(Int32 startIndex, Int32 length)
    at Zist.Form1.menuItem1_Click(Object sender, EventArgs e) in H:\ppc\Zist\Zist\Form1.cs:line 441
    at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
    at System.Windows.Forms.MenuItem.MenuItemData.Execute ()
    at System.Windows.Forms.Command.Invoke()
    at System.Windows.Forms.Command.DispatchID(Int32 id)
    at System.Windows.Forms.Control.WmCommand(Message& m)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
    at System.Windows.Forms.ContainerControl.WndProc(Mess age& m)
    at System.Windows.Forms.Form.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///H:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    Zist
    Assembly Version: 1.0.0.0
    Win32 Version:
    CodeBase: file:///H:/ppc/Zist/Zist/bin/Debug/Zist.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///H:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///H:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///H:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///H:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///H:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.

    length cannot be less than zero.
    parameter name: length.

  4. #4
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884

    نقل قول: ارور دادن با try catch

    سلام

    توی تابع menuItem1_Click ، اول نوشتی:
    textBox2.Text = "";
    بعد داری:
    textBox2.Text = textBox2.Text.Substring(0, textBox2.Text.Length - 1);
    خوب معلومه خطا باید بده! چون جدا کردن رشته از اول به طول منفی یک،معنی نداره.

    موفق باشی

  5. #5
    کاربر دائمی آواتار silverfox
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    سن
    32
    پست
    559

    نقل قول: ارور دادن با try catch

    مرسی من همش تو Switch دنبالش می گشتم فکر می کردم به دیفالت اون داره گیر می ده اصلا چشم ندید این تیکش رو...مرسی...

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •