gpt4 book ai didi

java - Java Card 中小程序的坚固性

转载 作者:行者123 更新时间:2023-11-30 07:01:20 27 4
gpt4 key购买 nike

我用 Java Card 开发了一个小程序,它运行良好。现在我正在研究这个小程序的坚固性,更准确地说,如果卡在小程序执行期间被拔掉会发生什么。

我想知道是否有处理此类事情的异常?

我正在寻找类似的东西:

try {
...
}
// If the card is disconnected while the applet execution
catch (Exception e) {
...
}

提前谢谢你。

最佳答案

由于智能卡内部没有任何电池,因此您不能像这样进行任何try ... catch ...。或者,您可以利用 Transactions。事务 API 只是为了您的目标而提供的。 beginTransation()commitTransation() 方法之间的操作仅在 commitTransation() 成功完成时适用。如果在 commitTransation() 之前发生任何异常/卡片撕裂或卡片重置,一切都会返回到其原始状态(即返回到它在 beginTransaction() 之前的状态)

是这样的:

    .
.
JCSystem.beginTransaction();
//put your critical code here.
JCSystem.commitTransaction();
.
.

您还可以使用 JCSystem.commitTransaction(); 在特定情况下终止事务,如下所示:

    .
.
JCSystem.beginTransaction();

//put your critical code here.
if (condition) {
JCSystem.commitTransaction();
}

JCSystem.commitTransaction();
.
.

注意:

  1. 交易在卡中的缓冲区有限。所以你不能把整个程序放在一个事务中。但对于典型的关键方法,它有足够的缓冲区大小。
  2. 您不能使用嵌套交易。

关于java - Java Card 中小程序的坚固性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com