1. 程式人生 > >C# .net程式設計基礎-try-catch異常處理-階乘示例

C# .net程式設計基礎-try-catch異常處理-階乘示例

    在軟體開發過程中,程式異常是十分常見的,也就是我們常說的BUG,因此需要我們對不可預期的異常進行處理。
    異常處理其實很簡單,最開始我也就得很難,不用怕、真的挺簡單的,真正理解了頂多也就一個try-catch語句和throw語句。
    try-catch語句用法:
try{
    語句塊1  //可能引發異常的程式碼

catch(異常型別1 異常物件1){
    語句塊2  //異常處理

catch(異常型別2 異常物件2){
    語句塊3  //異常處理

    當try語句塊中有異常發生時,程式首先建立一個異常物件,然後依次搜尋與之匹配的catch物件,如果找到了匹配的程式碼塊,程式就會跳轉到這個catch塊並執行塊中的語句。
    下面給大家一個示例-階乘的異常處理:
    1、先給大家未做異常處理的程式碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Exception_test2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //計算階乘的函式
        public int Factorial(int n)
        {
            int result = 1, i = 1;
            while (i <= n)
            {
                result *= i;
                i++;
            }
                return result;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int n = Convert.ToInt32(textNum.Text);
            int result = Factorial(n);
            textRes.Text = result.ToString();
        }
    }
}


    截圖我就不截了,當我們在輸入框中輸入的不是數字時系統就會產生異常,程式中斷。這是最常見的輸入異常。
    2、下面是用try-catch語句把可能產生異常的語句寫在try語句塊中,在catch語句塊中進行處理:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public int Factorial(int n)
        {
            int result = 1, i = 1;
            while (i <= n)
            {
                result *= i;
                i++;
            }
            return result;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int n = Convert.ToInt32(textNum.Text);
                int result = Factorial(n);
                textRes.Text = result.ToString();
            }
            catch (Exception ex)
           {
                MessageBox.Show(ex.Message,"輸入格式錯誤!");
            }
        }
    }


    這下當我們在輸入框中沒有輸入數字時就會彈出一個提示框說我格式輸入不正確,這就是異常的處理。

相關推薦

C# .net程式設計基礎-try-catch異常處理-示例

    在軟體開發過程中,程式異常是十分常見的,也就是我們常說的BUG,因此需要我們對不可預期的異常進行處理。     異常處理其實很簡單,最開始我也就得很難,不用怕、真的挺簡單的,真正理解了頂多也就一個try-catch語句和throw語句。     try-catch語

try catch 異常處理

學習code: int main(int argc, char* argv[])...{  try...{... ...  }  catch(std::exception& e) ...{    std::cerr <<"Exception caught

Thinkphp try{}catch()異常處理的寫法

最近在專案開發中 異常處理捕獲不到,查了下關於異常處理的資料,還是名稱空間的問題 public function del ($id) {//在模型中丟擲異常 if ( !$id || !is_array($id) ) { E('ID不合

try...catch異常處理使用注意——包含程式碼過多

Java中使用try…catch來處理異常,今天在debug一段用try..catch處理的程式碼段,除錯時throws Exception, 感覺丟擲的異常有問題,但是又很難對出現問題的地方進行識別定

spring的註解事務與try catch 異常處理

Spring的預設事務機制,當出現unchecked異常時候回滾,checked異常的時候不會回滾; 異常中unchecked異常包括error和runtime異常,需要try catch或向上丟擲的異常為checked異常比如IOException,也就是說程式丟擲r

.net try catch 異常捕獲的正確使用姿勢。。

很慚愧,寫了好多年的程式碼, 最基本的try catch 才剛剛會正確的使用, 以前只能說叫會用, 但是用法不正確。 先說說,異常的3種使用方式。 見下面的程式碼。 public static int Method1() {

c# catch異常處理3種方式

如果需要向用戶提示 try { } catch(Exception ex) {    MessageBox.Show(ex.ToString()); } 如果需要向外層丟擲 try { } catch(Exception ex) {  &n

C# try-catch 例外處理(Execption Handling)

例外處理,可以處理一些未知且發生錯誤的情況,例如: 輸入不合法(型別不符)的值、找不到要開啟的資料、處理資料時突然失去連線...。 在C# 例外處理使用 try-c

使用try...catch語句處理異常

一 介紹 JavaScript從Java語言中引入了try...catch...finally功能,具體語法如下。 語法: <script language="javascript"> try { somestatements; } catch(exception e) { somestatem

Python基礎——try與except處理異常語句

try/except介紹 預設情況下,在程式段的執行過程中,如果沒有提供try/except的處理,指令碼檔案執行過程中所產生的異常訊息會自動傳送給程式呼叫端,如python shell,而python shell對異常訊息的預設處理則是終止程式的執行並列印具

Java中的Exception的異常分類與try,catch處理

一、 異常:   1:錯誤的分類           1)Error:錯誤(不可控),一般指的是系統方面的異常,比如 藍屏,記憶體溢位,jvm執行環境出現了問題。           2) Exception:是可控的異常,程式設計師可以在編寫程式時解決的錯誤。     

Python基礎之finally異常處理

不知道 發生 try range 異常處理 輸出 完全 例如 nbsp #try...finally 無論是否異常都執行finally#例如實現不管是否異常都輸出一串字符串‘‘‘try: print ifinally: print "不管上面是否異常,我必須輸出

try異常處理

斷言 拋出異常 而且 方式 邏輯錯誤 except 做出 nal post 一,今日內容:   錯誤分類:     1, 語法錯誤: 程序未執行之前, pychram已經做出了提示.    2, 邏輯錯誤:      1, 可預知: 用邏輯判斷 可以解決      2,

005 異常處理 java基礎學習總結——異常處理

 java基礎學習總結——異常處理 一、異常的概念   異常指的是執行期出現的錯誤,也就是當程式開始執行以後執行期出現的錯誤。出現錯誤時觀察錯誤的名字和行號最為重要。    1 package cn.javastudy.summary; 2 3 p

清華大學《C++語言程式設計基礎》線上課程筆記05---vector物件,物件的複製與移動,string類

vector 物件 C++標準庫中的一個類模板 封裝任何型別的動態陣列,自動建立和刪除。 陣列下標越界檢查。 將動態陣列封裝成類的知識點中封裝的ArrayOfPoints也提供了類似功能,但只適用於一種型別的陣列。 vector<元素型別> 陣列物件名(陣列長度

清華大學《C++語言程式設計基礎》線上課程筆記04---指標

指標 static int i; static int* ptr = &i; 此處的*表示ptr是指標型別(地址型別),用來存放目標資料的地址 其本身也有地址,所以又指向指標的指標; *前面的 int 代表其指向的資料型別是 int 型,從目標i的起始單元地址取 int 資料型別位元

清華大學《C++語言程式設計基礎》線上課程筆記03---資料的共享和保護&陣列

資料的共享和保護 物件的生存期 static型別的區域性變數,生存期在整個程式,區域性可見。 void example() { static a=1; int b=2 } 當呼叫完example函式後,b消亡,a仍然存在; 再次呼叫該函式時,a值不會再次被賦值,仍保持之前資料;

清華大學《C++語言程式設計基礎》線上課程筆記01

使用除法的注意事項 double b = 4.0 * 1/239.0; 因為整數相除結果取整,如果引數寫1/239,結果就都是0 浮點數注意事項 浮點數是近似儲存,所以不能直接比較兩個浮點數的大小, 可以比較差值小於10的多少負多少次方. 逗號運算子 a=3 * 5,a * 4

c語言程式設計基礎

1. c語言的特性    A: c語言是一種底層語言    B: c 語言是一種小型語言    C: c 語言一種包容性語言,c語言假設使用者知道自己做什麼,  

C語言程式設計基礎講座之函式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!