C++如何使用try-catch

最近在做那个银行家算法,因为要输入的东西太多了,且还要保持程序的鲁棒性,所以想到用try-catch语句来捕捉输入异常,我的意图是用catch来捕捉输入异常,并且让用户重... 最近在做那个银行家算法,因为要输入的东西太多了,且还要保持程序的鲁棒性,所以想到用try-catch语句来捕捉输入异常,我的意图是用catch来捕捉输入异常,并且让用户重新输入!应该要如何实现? 展开
 我来答
匿名用户
2013-06-25
展开全部
/// 资源数   public static int resourceNumber;   /// 进程数   public static int processNumber;   /// 可用资源数组   public static int[] Available;   /// 工作向量   public static int[] work;   /// 它表示系统是否有足够的资源分配给进程   public static bool[] Finish;   /// 最大需求矩阵   public static int[][] Max;   /// 分配矩阵   public static int[][] Allocation;   /// 需求矩阵   public static int[][] Need;   /// 安全序列   public static int[] SafeSequence;   /// 资源请求向量   public static int[] Request;   算法思想:   主要是:递归+深度优先搜寻+回溯   算法源代码如下:   /// 深搜+回溯实现银行家算法   /// <param name="n">已完成的进程数</param>   public void DFS_searchSafeSequence(int n)   {   if (n == processNumber)   {   //找到一个安全序列,可以显示所有安全序列   //显示在richTextBoxshow.Text上   for (int i = 0; i < processNumber; i++)   {   richTextBoxshow.Text += SafeSequence[i] + " ";   }   richTextBoxshow.Text += "\n";   return;   }   for (int i = 0; i < processNumber; i++)   {   if (Finish[i] == false)//进程尚未完成   {   //判断现有资源是否可以满足这个进程   bool isOK = true;   for (int j = 0; j < resourceNumber; j++)   {   if (Need[i][j] > work[j])   {   isOK = false;   break;   }   }   //可以满足   if (isOK)   {   //先试探的将资源分配给这个进程   for (int j = 0; j < resourceNumber; j++)   {   work[j] += Allocation[i][j];   }   //已经完成   Finish[i] = true;   //加入安全序列   SafeSequence[n] = i;   //继续搜索   DFS_searchSafeSequence(n+1);   //回溯   Finish[i] = false;   SafeSequence[n] = -1;   for (int j = 0; j < resourceNumber; j++)   {   work[j] -= Allocation[i][j];   }   }   }   }   }
星辰大海智慧闪耀
推荐于2016-02-28 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4219
采纳率:87%
帮助的人:425万
展开全部
  1. C++语言中try-catch 语句由一个 try 块后跟一个或多个 catch 子句构成,这些子句指定不同的异常处理程序。

  2. try中的语句用于来放容易出错的代码,如果出错了它就不执行try下面的代码了,直接跳到catch里面去。如果没出异常则catch里面的代码不执行,它还有一个关键字finally它里面的代码无论有没有出异常它都要运行。

  3. try-catch 的语句格式:
    try 

    //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 

    catch 

    //除非try里面执行代码发生了异常,否则这里的代码不会执行 

    finally 

    //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally 
    }


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-25
展开全部
用try catch来实现重新输入好像不是太合理捕获到异常后 一般不会尝试继续执行失败的方法给你个例子看看吧#include <iostream>
using namespace std;
int main()
{

cin.exceptions(ios::failbit);
int i;
try
{
cin >> i;
}
catch(std::ios_base::failure e)
{
cout<<"输入错误"<<endl;
}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-25
展开全部
try{代码}catch(...)//这里的...三个点是任何错误的意思{这里写错误}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-25
展开全部
哥你烧糊涂了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式