c#抛出异常的描述信息,怎么改动?
如下,用checkd关键字检测数据是否溢出。遇到溢出时,就会跳到catch里执行Console.WriteLine(ex.Message);这是描述异常的信息。我想自定义...
如下,用checkd关键字检测数据是否溢出。
遇到溢出时,就会跳到catch里执行Console.WriteLine(ex.Message);这是描述异常的信息。
我想自定义这个描述,怎么弄啊。
我写 throw new Exception("这是国军的失误!");会报错
ex.Message又是只读的。怎么搞?
try
{
byte b1 = 109, b2 = 200;
checked
{
byte sum=(byte)(b1+b2);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
// throw new Exception("这是国军的失误!");
} 展开
遇到溢出时,就会跳到catch里执行Console.WriteLine(ex.Message);这是描述异常的信息。
我想自定义这个描述,怎么弄啊。
我写 throw new Exception("这是国军的失误!");会报错
ex.Message又是只读的。怎么搞?
try
{
byte b1 = 109, b2 = 200;
checked
{
byte sum=(byte)(b1+b2);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
// throw new Exception("这是国军的失误!");
} 展开
展开全部
throw 用来抛出异常,可自己编写代码,抛出所需要的异常。
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CheckedAndUnchecked
{
class Program
{
static void Main(string[] args)
{
int month;
string b;
Console.WriteLine("请输入月份的值:");
b = Console.ReadLine();
month = int.Parse(b);
switch (month)
{
case 1:
Console.WriteLine("January");
break;
case 2:
Console.WriteLine("Feburary");
break;
case 3:
Console.WriteLine("March");
break;
case 4:
Console.WriteLine("April");
break;
case 5:
Console.WriteLine("May");
break;
case 6:
Console.WriteLine("June");
break;
case 7:
Console.WriteLine("July");
break;
case 8:
Console.WriteLine("August");
break;
case 9:
Console.WriteLine("September");
break;
case 10:
Console.WriteLine("October");
break;
case 11:
Console.WriteLine("Novemer");
break;
case 12:
Console.WriteLine("December");
break;
default:
throw new ArgumentOutOfRangeException("不存在的月份"); // throw
}
}
}
}
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CheckedAndUnchecked
{
class Program
{
static void Main(string[] args)
{
int month;
string b;
Console.WriteLine("请输入月份的值:");
b = Console.ReadLine();
month = int.Parse(b);
switch (month)
{
case 1:
Console.WriteLine("January");
break;
case 2:
Console.WriteLine("Feburary");
break;
case 3:
Console.WriteLine("March");
break;
case 4:
Console.WriteLine("April");
break;
case 5:
Console.WriteLine("May");
break;
case 6:
Console.WriteLine("June");
break;
case 7:
Console.WriteLine("July");
break;
case 8:
Console.WriteLine("August");
break;
case 9:
Console.WriteLine("September");
break;
case 10:
Console.WriteLine("October");
break;
case 11:
Console.WriteLine("Novemer");
break;
case 12:
Console.WriteLine("December");
break;
default:
throw new ArgumentOutOfRangeException("不存在的月份"); // throw
}
}
}
}
展开全部
报错是因为你在catch里抛出了异常,但在外层又没有适当的处理。如果想要自定义异常信息
throw new Exception("这是国军的失误!"); 是可以的,但加上外层处理就可以了
throw new Exception("这是国军的失误!"); 是可以的,但加上外层处理就可以了
追问
怎么处理?
追答
你的try catch 所在的方法会抛出异常,所以你需要在它的外层调用方法中再用 try cath 捕捉
try
{
异常抛出方法
}catch(Exception e)
{
MessageBox.show(e.Message);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
throw new Exception("这是国军的失误!");不应该用在catch里,catch是捕获到了异常,然后进行处理,而不是往外抛异常。
更多追问追答
追问
那我怎么让catch捕捉到的异常信息是:throw new Exception("这是国军的失误!");
呢
追答
捕获的其实就是checked的异常,所以你可以自定义一个类型与checed的类或者写一个方法,在方法里面抛这个异常throw new Exception("这是国军的失误!");然后catch就可以捕获
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询