Echo Uncaught Exception

时间:2013-09-08 03:28:37

标签: php sha256 bitcoin

我正在使用coinbase api制作比特币水龙头,并希望验证地址。我在网上查看是否有任何好的脚本,并且找不到任何好的脚本,所以我决定测试并查看它是否已经在API中构建,它就是!问题是,而不只是说这不是一个有效的地址,它显示一个LONG错误...

  

致命错误:未捕获的异常'Coinbase_ApiException',并在C:\ xampp \ htdocs \ nahtnam \ lib \ Coinbase \ Rpc.php中显示消息'请输入有效的电子邮件或比特币地址':84堆栈跟踪:#0 C:\ xampp \ htdocs \ nahtnam \ lib \ Coinbase \ Coinbase.php(39):Coinbase_Rpc-> request('POST','transactions / se ...',Array)#1 C:\ xampp \ htdocs \ nahtnam \ lib \ Coinbase \ Coinbase.php(118):Coinbase-> post('transactions / se ...',Array)#2 C:\ xampp \ htdocs \ nahtnam \ faucet.php(54):Coinbase-> sendMoney ('17FSKMPAyXGR7EQ ...','0.00000555','这是一个测试')#34 {main}在第84行的C:\ xampp \ htdocs \ nahtnam \ lib \ Coinbase \ Rpc.php中抛出

我是否可以将$ address_error设置为“请输入有效地址”(不是电子邮件),如果发生这种情况并且也不显示错误?谢谢!

2 个答案:

答案 0 :(得分:1)

使用trycatch

try {
    if(/*invalid address check returns true*/)
        throw 'Invalid address';
} catch(Exception $e) {
    echo 'Exception: ' . $e->getMessage();
}

答案 1 :(得分:1)

扩展aliasm2k's answer,你可能想要更像这样:

编辑:根据评论讨论略微更改了答案

我认为我对你在评论中要求的内容有点不清楚。

 try {
     $result = $Coinbase->sendMoney($bitcoinaddress, '0.00000555', 'this is a test');
 catch(Exception $e) {
     echo $e->getMessage(); 
     exit;   //optional but you probably want to quit here and show the user
             //the original form along with the error message to fix 
 }

这只是回应“请输入有效的电子邮件或比特币地址”。您不会获得所有其他信息,因为您正在捕获异常并只显示消息。 可能的错误消息are listed here

另外,如果我可以给你一个稍微偏离主题的提示: 如果要查找有关已使用的特定地址的信息,请尝试blockchain block explorer api

要简单地检查地址是否有效,您需要在代码中计算或者找到库函数来执行此操作。 api没有地址的主列表。地址的最后4个字节是前面字符的双sha-256校验和。顺便说一句,这是我给你的一种不精确的描述,但请检查here for a working php example