【发布时间】:2014-05-11 08:15:05
【问题描述】:
我设法使用 Strip.net dll 的一个版本来创建付款方式,但我在处理错误时遇到了问题。我已经做到了。
try
{
StripeCustomer current = GetCustomer();
// int? days = getaTraildays();
//if (days != null)
//{
int chargetotal = 300; //Convert.ToInt32((3.33*Convert.ToInt32(days)*100));
var mycharge = new StripeChargeCreateOptions();
mycharge.AmountInCents = chargetotal;
mycharge.Currency = "USD";
mycharge.CustomerId = current.Id;
string key = "sk_test_XXX";
var chargeservice = new StripeChargeService(key);
StripeCharge currentcharge = chargeservice.Create(mycharge);
//}
}
catch (StripeException)
{
lblerror.Text = "Please check your card information and try again";
}
它将捕获错误并让用户知道存在问题,但我对此很陌生,以了解为什么如果进程正常,它仍然会显示错误。我知道它的写法有问题,但我不确定如何处理,我努力尝试的一切都失败了。我想做的是让它重定向到另一个页面。任何想法
++更新
在 Olivier Jacot-Descombes 的帮助下,我将代码更改为
catch (StripeException ex)
{
lblerror.Text = (ex.Message);
}
并且能够获得更好的结果
【问题讨论】:
-
“try”块中的代码是否可能引发不同的异常?否则(根据提供的小代码),应该捕获并抑制 StripeException。
-
您的问题似乎与第 3 方 API 引发的异常有关。我建议你在那里查找错误。我们不是该 API 的开发者。
-
在进入
try块之前,您是否清除了lblerror.Text? -
异常被捕获(编辑)我的问题是,看起来所有消息都作为异常抛出,我想知道(如果我说得对)。如果它不是会停止代码将用户重定向到另一个页面的异常。这可能吗?
-
尝试显示原始错误消息
catch (StripeException ex) { lblerror.Text = ex.Message; }
标签: c# asp.net stripe-payments stripe.net