我用于编程的主计算机是我用于游戏的同一台计算机.因此,为了提高游戏速度,我从启动时开始关闭Apache,MySQL,Subversion等服务,因为我使用大约50/50进行游戏/编程.
这在大多数情况下都很好,但是单独启动它们会有点麻烦.
有人可以告诉我如何编写批处理文件或类似的东西来启动所有服务?
什么时候应该抛出自定义异常?
例如,我有一些连接到服务器的代码。连接到服务器的代码在连接失败时会抛出 IOException。在它所调用的方法的上下文中,这很好。在网络代码中也很好。
但由于这表示没有连接(因此无法正常工作),异常会一直上升到用户界面。在这个阶段,IOException 的含义非常模糊。像 NoConnectionException 这样的东西会更好。
所以,我的问题是:您应该在哪个阶段捕获异常,而不是抛出另一个更适合抽象的(自定义)异常?
我有以下代码(其中存储是一个gtk.ListStore和效价是gtk.TreeIter该文件说,如果没有下一行,iter_next()将返回None被发现的时候,因此休息.它应该通过搜索ListStore的(int, str)并删除一个项目其int组件与item_id匹配.
while True:
if store.get_path(titer)[0] == item_id:
store.remove(titer)
break
else:
titer = store.iter_next(titer)
if titer is None:
break
Run Code Online (Sandbox Code Playgroud)
但是,如果中间的元素先前已被删除,而不是titer.iter_next()指向下一个有效元素,则它指向None.这意味着如果具有正确int值的元素位于先前删除的项目之后,则永远不会找到它.有没有正确的方法来搜索gtk.ListStore删除项目?
我正在制作基于浏览器的JavaScript游戏.因此,在游戏中,用户无需复制/粘贴文本.但是,有许多地方用户需要点击并拖动以在游戏中进行选择.
在游戏中有很多单元格,在内部只是普通的表格单元格,有一个不间断的空间来阻止它们在Firefox中崩溃(我可以用CSS停止在IE,Safari和Opera中的崩溃,但由于某种原因它不起作用火狐所以我使用非破碎空间),具有纯色背景颜色或背景图像.
当玩家在其中拖动选区时,游戏会通过更改背景颜色来突出显示单元格.但是,浏览器还会突出显示非中断空格,并在某些单元格中留下灰色矩形.
此外,浏览器使用不同的方式来确定选择的内容而不是游戏.
例如,在5 x 5平方中,如果用户选择(1,1)到(3,3),则游戏突出显示以下选择:
| | | | | |
| | X | X | X | |
| | X | X | X | |
| | X | X | X | |
| | | | | |
Run Code Online (Sandbox Code Playgroud)
但浏览器突出显示以下非破坏空格:
| | | | | |
| | | X | X | X |
| X | X | X | X | X |
| X | X | X | …Run Code Online (Sandbox Code Playgroud) public void handleParsedCommand(String[] commandArr) {
if(commandArr[0].equalsIgnoreCase("message")) {
int target = Integer.parseInt(commandArr[1]);
String message = commandArr[2];
MachatServer.sendMessage(target, this.conId, message);
} else if(commandArr[0].equalsIgnoreCase("quit")) {
// Tell the server to disconnect us.
MachatServer.disconnect(conId);
} else if(commandArr[0].equalsIgnoreCase("confirmconnect")) {
// Blah blah and so on for another 10 types of command
} else {
try {
out.write("Unknown: " + commandArr[0] + "\n");
} catch (IOException e) {
System.out.println("Failed output warning of unknown command.");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有这部分服务器代码用于处理消息类型.每条消息都包含其中的类型commandArr[0]和参数commandArr[].然而,这个当前的代码,虽然工作似乎非常不优雅.有没有更好的方法来处理它?(据我所知,String价值不能用于switch陈述,即使这样, …
我正在编写一个PHP/MySQL程序,我想知道如何使用MySQL搜索多个表.
基本上,我在大多数网站的右上角都有一个搜索框,当用户在该框中搜索某些内容时,它需要搜索users.username,users.profile_text,uploads.title,uploads.description,sets.description和comments.text.我需要获取ID(存储在每个表中的id字段中),如果可能的话,谷歌就像摘录一样.
我有几个循环细胞周围细胞的功能.网格包含在数组中.
在我的代码中,我检查以确保它不是边缘单元之一,因为检查未定义的单元格会导致错误.
因此,我有这样的代码:
if(x > 0) {
var firstX = x - 1;
} else {
var firstX = x;
}
if(x < 199) {
var lastX = x + 1;
} else {
var lastX = x;
}
if(y > 0) {
var firstY = y - 1;
} else {
var firstY = y;
}
if(y < 199) {
var lastY = y + 1;
} else {
var lastY = y;
}
Run Code Online (Sandbox Code Playgroud)
很多代码行做的很少.有没有更优雅的方式来做到这一点?
我是一名多数自学成才的程序员.当我学习一门新语言时,它通常是这样的:
Web编程为这些东西提供了大量的可能性.论坛,博客,社交网络等.最终结果与正确完成的内容质量不同,但我可以下载一个开源程序做同样的事情并比较看我的代码是否良好.
但是,对于桌面GUI,我有点难以接受想法.关于一个相当复杂(但可行)的项目的任何建议,以适应桌面编程?
在我的代码中,jsc.tools是一个包含对象的对象.每个子对象都包含一个init()和run()方法.
我在启动时运行以下代码:
for(tool in jsc.tools) {
tool.init();
}
Run Code Online (Sandbox Code Playgroud)
这给了我错误"tool.init不是一个函数".
工具声明的示例是:
jsc.tools.sometool = {};
jsc.tools.sometool.run = function() {
// Apply tool
}
jsc.tools.sometool.init = function() {
// Set bits of data needed for the tool to run
}
Run Code Online (Sandbox Code Playgroud) 这段代码:
class Todo:
def addto(self, list_name="", text=""):
"""
Adds an item to the specified list.
"""
if list_name == "":
list_name = sys.argv[2]
text = ''.join(sys.argv[3:]
todo_list = TodoList(getListFilename(list_name))
Run Code Online (Sandbox Code Playgroud)
产生语法错误,小箭头指向todo_list最后一行.
该__init__对方法TodoList是在这里:
def __init__(self, json_location):
"""
Sets up the list.
"""
self.json_location = json_location
self.load()
Run Code Online (Sandbox Code Playgroud)
我对Python很陌生,所以我不明白我在做错了什么.