小编int*_*tar的帖子

在发生异常之前是否完成了异常处理回滚操作?

想象一下,我有这样的方法

void myMethod(MyThing t) throws MyException {
   t.foo = "bar";
   if (t.condition()) { 
      throw new MyException();
   }
}
Run Code Online (Sandbox Code Playgroud)

如果触发了异常,t.foo的值是否会恢复为之前的值?还是保持"酒吧"价值?

java exception-handling exception

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

Python JSON和Unicode

更新:

我在这里找到了答案:Python UnicodeDecodeError - 我误解了编码吗?

当我读取它时,我需要将传入的文件显式解码 Unicode.因为它的字符既不可接受也不是unicode.所以编码在遇到这些字符时失败了.

原始问题

所以,我知道有些东西我不会来这里.

我有一个unicode字符串数组,其中一些包含非Ascii字符.

我想将其编码为json

json.dumps(myList)
Run Code Online (Sandbox Code Playgroud)

它抛出一个错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb4 in position 13: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?我已经尝试将ensure_ascii参数设置为True和False,但都没有修复此问题.

我知道我将unicode字符串传递给json.dumps.我知道json字符串是unicode.为什么不只是为我排序呢?

我究竟做错了什么?

更新:Don Question明智地建议我提供堆栈跟踪.这里是.:

Traceback (most recent call last):
  File "importFiles.py", line 69, in <module>
    x = u"%s" % conv
  File "importFiles.py", line 62, in __str__
    return self.page.__str__()
  File "importFiles.py", line 37, in __str__
    return json.dumps(self.page(),ensure_ascii=False)
  File "/usr/lib/python2.7/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/usr/lib/python2.7/json/encoder.py", line 204, in encode …
Run Code Online (Sandbox Code Playgroud)

python unicode json

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

我可以一起使用Python的curses和cmd库吗?

在Python中,我想同时使用cmd和curses编写一个终端程序。使用cmd接受和解码完整的输入行,但使用curses定位输出。

像这样将curses和cmd的示例混在一起:

import curses 
import cmd

class HelloWorld(cmd.Cmd):
    """Simple command processor example."""

    def do_greet(self, line):
        screen.clear()
        screen.addstr(1,1,"hello "+line)
        screen.addstr(0,1,">")
        screen.refresh()

    def do_q(self, line):
        curses.endwin()
        return True

if __name__ == '__main__':
    screen = curses.initscr()   
    HelloWorld().cmdloop()
Run Code Online (Sandbox Code Playgroud)

我发现打字时什么也没看到。在屏幕上显示任何内容之前,curses可能正在等待刷新。我可以切换到使用getch(),但是那样我会失去cmd的值。

有没有办法使它们一起工作?

python curses cmd

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

寻找使用缩进块结构的Jison语法的例子

有没有人有一个简单的例子,说明如何使用Jison定义一个解析类似python的缩进的语法?

grammar indentation jison

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

可重复使用的ClojureScript库

所以,我接受了我的大型Clojure项目并将其分成两部分.

我编写了核心部分并制作了Uberjar.

然后输入:

lein deploy clojars
Run Code Online (Sandbox Code Playgroud)

将该jar公开,然后将其作为依赖项添加到我的应用程序的project.clj文件中.

这段代码是用cljx编写的,所以它可以编译成javascript.

我需要将两个cljx代码库分成两个独立的javascript库,而没有让整个ClojureScript虚拟机重复两次,这有什么相同的步骤?

更新:只是为了澄清一些事情.

1)我知道我可以转移到.cljc而不是.cljx.我唯一担心的是这看起来很新,我不知道我的代码的现有用户是否可能拥有它.但我很快就会采取行动.关于cljc的答案也是受欢迎的.

2)我已经成功地将我的代码编译为单个monolithic main.js文件.我正在寻找的是如何编译可以包含在其他cljs项目中的单独的clj库.每当我目前在cljs中编译一些内容时,我会得到一个包含整个clojurescript VM的main.js文件.

3)我回到这个问题的动机之一就是我想开始使用Figwheel.所以我希望能够在clojurescript中创建库,我可以将其放入我正在通过Figwheel开发的新clojurescript项目中.所以我想我会在这个新项目的project.clj文件中引用它们,并将它们作为已编译的.js文件包含在网页中.我错了吗?

clojure package google-closure-compiler clojurescript

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

如何在VB.NET中设置线条的粗细

在VB.NET中,我使用这样的代码绘制椭圆.

 aPen = New Pen(Color.Black)
 g.DrawEllipse(aPen, n.boxLeft, n.boxTop, n.getWidth(), n.getHeight)
Run Code Online (Sandbox Code Playgroud)

但我想设置线条的粗细.我该怎么做?它是Pen的属性还是DrawEllipse方法的参数?

(注意:出于某种原因,帮助是VisualStudio失败了所以我无论如何都要上网.我以为我先试试.)

.net vb.net drawing

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

Linux内核(或其他低级别的东西)是如何编写C的"好"示例

遵循"什么是C的最佳用途"问题.

Linux内核似乎是一个着名且非常好的C程序.但它是主流"最佳实践"C的一个很好的例子吗?

c linux-kernel

5
推荐指数
3
解决办法
1856
查看次数

django模型有两个通用(content_type)外键?

我正在尝试在两个通用(content_type)引用之间创建一个映射表,一个用于"代理",一个用于"资源".

所以我采用通常的方式制作通用外键:

content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
resource = generic.GenericForeignKey('content_type', 'object_id')
Run Code Online (Sandbox Code Playgroud)

我尝试用两个模型制作模型.

agent_content_type = models.ForeignKey(ContentType)
agent_object_id = models.PositiveIntegerField()
agent = generic.GenericForeignKey('agent_content_type', 'agent_object_id')

resource_content_type = models.ForeignKey(ContentType)
resource_object_id = models.PositiveIntegerField()
resource = generic.GenericForeignKey('resource_content_type', 'resource_object_id')
Run Code Online (Sandbox Code Playgroud)

但是这会引发以下错误:

myapp.mymodel:字段'resource_content_type'的访问者与相关字段'ContentType.mymodel_set'冲突.将related_name参数添加到"resource_content_type"的定义中.

和代理商类似.

这里发生了什么?我该怎么办?

干杯

菲尔

generics django django-models

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

简单的Prolog从列表中删除

(这不是一个课程问题.只是我个人的学习.)

我正在尝试在Prolog中进行练习以从列表中删除元素.这是我的代码:

deleteall([],X,[]).
deleteall([H|T],X,Result) :- 
    H==X,
    deleteall(T,X,Result).
deleteall([H|T],X,[H|Result]) :- deleteall(T,X,Result).
Run Code Online (Sandbox Code Playgroud)

当我测试它时,我首先得到一个很好的答案(即删除了所有的X.)然后回溯为我提供了列表的所有其他变体,其中删除了一些或没有X的实例.

为什么会这样?为什么H == X的情况会落到最后一个子句?

prolog prolog-dif

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

计算百分比的浮点乘法的快速替代方案

我正在 Arduino 上编写一些代码,该代码需要快速运行并对整数百分比进行粗略近似。

例如,给定一个数字,我想找到它的 90%、70% 或 30% 等。最明显的方法是乘以浮点,例如。x * 0.9;或 x * 0.3;但因为我需要速度,所以我想避免浮点计算。如果我只是除以 2 的幂,我会进行按位移位,但是是否有类似的技术可以使用整数来近似 90%、80% 等?

performance heuristics arduino integer-division integer-arithmetic

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