小编Rel*_*ual的帖子

什么时候应该抛出异常而不是在PHP中返回错误?

我正在开发一个API包装器类,这是我做的第一个.在大多数情况下,它并不太难.达到我需要处理API返回的错误可能性的程度,但是我应该如何处理它们.

外部文件将调用API类,即,findVenueByLocationID($locationID); 此函数将构造API调用的URL和方法(POST,GET,DELETE等)并将其传递给名为makeCall的函数.

MakeCall构造完成的URL,将请求发送到服务并传回生成的XML.如果API返回错误,则它在返回的XML中.使用函数file_get_contents()调用URL.API具有一定数量的错误代码,它将在XML中返回.

据我了解,我应该在函数makeCall中执行以下操作:

  • 在返回XML之前,检查它是否包含错误代码,如果是,则将其传递给错误处理类以处理错误.(记录并返回客户端版本错误消息)
  • 在file_get_contents()函数周围添加一个try catch来捕获任何连接错误,即无法访问服务器?

这被认为是最好的做事方式吗?我应该在调用makeCall时添加try catch而不是在file_get_contents内部吗?我应该为XML返回的每个错误抛出异常并使用错误类处理它们吗?

我正在寻找的那种答案还应该包含一个资源的链接,该链接解释了一些围绕使用API​​包装器或类似事件进行错误处理的最佳实践.

提前感谢您的时间和回复.


编辑:与我们的CTO谈话后,当前版本的PHP错误是异常,我应该抛出异常并将异常处理留给调用者.请记住,我正在为API实现一个包装类.思考?

php api error-handling exception-handling

8
推荐指数
1
解决办法
1570
查看次数

Java JTabbedPane,如何从按钮中选择一个选项卡?

如何通过单击按钮选择一个标签,就好像它被点击一样?我用Google搜索并查看了所有操作,但只有这么多...... :(

有人知道吗?

提前致谢!

java swing jtabbedpane

7
推荐指数
1
解决办法
2万
查看次数

如何使用 JSONSchema 接受任何对象字符串值,无论其键是什么?

我有一个正在接收 JSON 消息的系统,其中包含来自文件静态分析的元数据。这些字段的名称是通过扫描动态生成的,可以是任何有效的字符串,但值始终是有效的字符串。

例如

{
    "filename": "hello.txt",
    ...
    "meta": {
        "some file property": "any string",
        "some other file property": "another string",
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在收到消息之前我无法知道元中的密钥是什么,也不知道会有多少个密钥。有没有一种方法可以在 JSONSchema 中捕获,只要它们的值始终是字符串,存在什么键并不重要?

jsonschema

7
推荐指数
1
解决办法
1216
查看次数

如何基于字段描述的对象类型针对JSON模式验证JSON对象?

我有许多对象(消息)需要根据JSON模式(draft-04)进行验证.每个对象都保证有一个"类型"字段,它描述了它的类型,但每个类型都有一组完全不同的其他字段,因此每种类型的对象都需要一个唯一的模式.

我看到了几种可能性,其中没有一种特别吸引人,但我希望我错过了一些东西.

可能性1:对每种消息类型使用oneOf.我想这会起作用,但问题是很长的验证错误以防出现问题:验证器倾向于报告每个失败的模式,其中包括"oneOf"数组中的所有元素.

{
  "oneOf":
  [
    {
      "type": "object",
      "properties":
      {
        "t":
        {
          "type": "string",
          "enum":
          [
            "message_type_1"
          ]
        }
      }
    },
    {
      "type": "object",
      "properties":
      {
        "t":
        {
          "type": "string",
          "enum":
          [
            "message_type_2"
          ]
        },
        "some_other_property":
        {
          "type": "integer"
        }
      },
      "required":
      [
        "some_other_property"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

可能性2:嵌套"如果","然后","其他"三合会.我没有尝试过,但我想在这种情况下错误可能会更好.然而,写起来非常麻烦,因为嵌套如果堆积如山.

可能性3:针对"t"的每个可能值的单独方案.这是最简单的解决方案,但我不喜欢它,因为它阻止我在模式中使用公共元素(通过引用).

那么,这些是我唯一的选择,还是我能做得更好?

jsonschema

6
推荐指数
1
解决办法
778
查看次数

在同一文档中引用 $id 时如何修复“无法解析引用”错误?

我想使用 JavaScript 中的 Ajv 根据 JSON 模式验证 JSON。我收到错误:

抛出新的 it.MissingRefError(it.baseId, $schema, $message); ^ 错误:无法从 id requestGetGraphs 解析引用 #/definitions/requestGraph

删除对其他架构的引用时: { "$ref" : "#/definitions/requestGraph" } 错误消失。

JavaScript 代码:

ajv.addSchema(require('./json-schema/graph-response'), 'graph-response.json');
ajv.validate('requestGetGraphs', `{"type" : "requestGetGraphs", "space" : "config", "v" : 1.1, "id" : "dsaf" }`);
Run Code Online (Sandbox Code Playgroud)

图请求.json:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id" : "graph-requests.json",
  "definitions": {
    "requestGraph" : {
      "$id" : "#/definitions/requestGraph",
      "allOf" : [
        { "$ref" : "call.json/#/definitions/request" },
        {
          "properties": {
            "space": {
              "$id" : "#requestGraph/properties/space",
              "type": "string",
              "const": "config"
            }
          } …
Run Code Online (Sandbox Code Playgroud)

javascript jsonschema ajv

6
推荐指数
2
解决办法
2万
查看次数

从 Java 中的另一个类调用重绘?

我可能做错了,所以请善待。我正在开发一个 Java 游戏,我正处于测试角色移动/动画的阶段。

“人”可以在网格上左右上下移动。绘制网格的类是 gamePanel 类。按钮位于 gameControlPanel 类中。

我有一个按钮,可以在网格上生成一个人。然后我有一个按钮可以左右上下移动这个人。

当按下向上移动按钮时,它会从 person 类调用向上移动方法。(目前,我一次只测试一个“人”。)在该方法中是以下代码......

int move = 10;
while(move!=0)
{
    setTopLeftPoint(new Point((int)getTopLeftPoint().getX(),
                              (int)getTopLeftPoint().getY() - 3));

    try
    {
        Thread.sleep(300);
    } catch (InterruptedException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
    move-=1;
}
Run Code Online (Sandbox Code Playgroud)

问题是我似乎无法从 Person 类中调用 gamePanel 类的重绘方法。为了解决这个问题,我在 gamePanel 类中创建了一个计时器,它每 20 毫秒重绘一次。

当我在人生成后按下向上按钮时,该按钮保持按下状态,直到完成 while 循环的循环,然后人的圆形表示显示在上面的网格方块中。

我会尽力回答有关此的任何问题。

java animation swing multithreading timer

5
推荐指数
1
解决办法
4583
查看次数

我应该为我的游戏使用3D吗?如果是这样,有多远和任何好的教程?

我一直在研究一个java模拟游戏(以我自己的方式重建主题医院).到目前为止,我已经完成了2d中的所有操作,使用正方形和圆形等.我已经找了一些关于如何在java中执行3d,找到可乐和代码的教程,但是我不确定这是否是我需要使用的.我的想法要么是要有简单的3d,就像在平面3d中一样.或真正的3D,这将是更多的工作,而且更加困难.我真的很想听到人们关于走3d的一般想法.这是几个月前我的进展视频(http://screenjel.ly/bdO7Rj8DVl8).2D图形相当不起眼.我想取得更多进展,但是我不知道如果我想最终进入3d,我是否应该继续在2d开发.

另外,我不知道3d有多难.理想情况下,我想要3D完全旋转.我知道这是相当雄心勃勃的,但我会满足于块状人和物品,而不是圆形和正方形.任何人都知道java教程中的任何好3d,其中包括旋转?

对此还有其他想法或意见吗?

谢谢

java 3d graphics

5
推荐指数
2
解决办法
534
查看次数

为 avro 架构的十进制逻辑类型和字节类型创建 json 表示

我正在尝试按照以下 avro 模式创建 JSON 字符串,用于十进制值。 https://avro.apache.org/docs/1.8.2/spec.html#Logical+Types

{
 "name": "score",
 "type": "bytes",
 "logicalType": "decimal",
 "precision": 10,
 "scale": 5
 }
Run Code Online (Sandbox Code Playgroud)

价值

"score":3.4,
Run Code Online (Sandbox Code Playgroud)

我得到了例外

Caused by: org.apache.avro.AvroTypeException: Expected bytes. Got VALUE_NUMBER_FLOAT.
Run Code Online (Sandbox Code Playgroud)

如果我给出“\u0000”而不是 3.4,那么它可以工作,但这是 0 的表示,我将如何获得 3.4 的表示?现在我正在创建硬编码的 JSON 字符串,但将来我必须将输出转换为十进制,我如何在 Scala 中做到这一点。

有没有办法将值转换为十进制逻辑格式?

scala event-bus avro avro-tools

5
推荐指数
1
解决办法
1649
查看次数

使用电子商店时来自 ajv 的严格模式警告

我想保存object[]使用electron-storewith JSON Schema,在阅读我得到的文档后,JSON Schema代码可以成功执行,但有警告:

strict mode: "items" is 1-tuple, but minItems or maxItems/additionalItems are not specified or different at path "#/properties/todo"
Run Code Online (Sandbox Code Playgroud)

我的代码是:

strict mode: "items" is 1-tuple, but minItems or maxItems/additionalItems are not specified or different at path "#/properties/todo"
Run Code Online (Sandbox Code Playgroud)

我添加了minItemsmaxItems,但警告仍然出现。我检查了几个小时但无法工作。谁能帮我?

顺便问一下我的使用方法是否JSON Schema正确?

您可以electron-store直接安装并执行它node ./xxx.js

谢谢你帮助我。

javascript frontend jsonschema node.js electron

5
推荐指数
1
解决办法
4411
查看次数

jsonschema 中的 items 和 properties 有什么区别?

我只是在学习jsonschema。我不清楚items和之间有什么区别properties。有人可以解释一下吗?

jsonschema

4
推荐指数
1
解决办法
713
查看次数