代码工作正常.我刚才有一个效率问题.在这段代码中,我使用" try... except"来传递会导致程序崩溃的错误.该错误是由IP地址无法访问引起的.正如我之前所说,代码完成了它的工作.我想知道这是否是最快的方式来查看IP是否可以访问并将其传递出去.如果找不到IP,它会停止30到45秒.堆积了几次这可能相当费时.
import win32net
def GetUsers( IP ):
try:
Users = win32net.NetGroupGetUsers(IP,'none',0),
except:
print IP + ': Was not found!'
else:
print IP + ': ' + Users
return
F = open("C:\Users\*User*\Desktop\IP_List.txt")
for CurrentIP in F.readlines():
GetUsers(CurrentIP.strip()),
F.close()
print 'DONE!'
Run Code Online (Sandbox Code Playgroud) 我正在寻找有关如何有效记录异常及其堆栈跟踪的最佳实践文档(或您的意见).当然,假设一个流行的日志框架,如Log4J,SLF4J,java.util.logging等.
我对你应该记录什么级别的堆栈跟踪的意见特别感兴趣.
我听到几个相互矛盾的意见,例如:
我找到了几篇有趣的文章,但没有一篇涉及这个特定的主题:
这可能意味着这些文章的作者与我有同样的担忧:-)
我对你对这个问题的看法非常感兴趣.
所以,我正在制作一个游戏,当我将我的类测试到一个文件中时,我得到了四个相同类型的错误'1046:未找到类型或者不是编译时常量:Stage和TextField'.我已经导入了所有东西,请看一下:
Game.as
package {
import flash.display.Stage.*;
import flash.filter.GlowFilter.*;
import flash.text.TextField.*;
import flash.net.URLLoader.*;
import flash.net.URLRequest.*;
import flash.net.URLRequestMethod.*;
import flash.net.URLLoaderDataFormat.*;
import flash.net.URLVariables.*;
public class Game {
public static const STATUS_MENU:int = 1;
public static const STATUS_SURVIVAL:int = 2;
public static const STATUS_MULTIPLAYER:int = 3;
public static const GAME_RUN:int = 1;
public static const GAME_PAUSE:int = 2;
public static var palco:Stage;
public static var profileName:Array; //Name, status, pass
public function Game():void {
trace("Class Game is online.");
}
public function transStage(sender:Stage):Stage {
palco = …Run Code Online (Sandbox Code Playgroud) 在c ++中,main中声明的所有变量都可以在主权中使用?我的意思是如果变量是在try循环中声明的,那么它们仍然可以在整个main中访问吗?因为我在main中的try循环中声明了几个变量,但是如果我在try循环之外的main的任何其他部分中使用它们,我会得到"未在此范围中声明"错误
遗憾的是我无法发布我的实际代码,但这基本上就是我在做的事情
int main()
{
try
{
int number = 0;
}
catch (...)
{
cout <<"Error";
}
number ++;
cout <<number;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我基本上会在第13行和第14行得到一个错误,说这个范围没有声明数字.
我想load,edit并save用一记CakePHP 2.0,但我得到generic error 的期间save不帮我明白问题出在哪里方法.
如果我尝试debug($this->User->invalidFields());我得到一个empty array,但我false从$this->User->save()条件得到.
这是我得到错误的控制器操作:
public function activate ($code = false) {
if (!empty ($code)) {
// if I printr $user I get the right user
$user = $this->User->find('first', array('activation_key' => $code));
if (!empty($user)) {
$this->User->set(array (
'activation_key' => null,
'active' => 1
));
if ($this->User->save()) {
$this->render('activation_successful');
} else {
// I get this error
$this->set('status', 'Save error …Run Code Online (Sandbox Code Playgroud) 我有一个包含以下字段的mysql表:
id用户名密码角色
管理员的角色编号为1,普通用户的角色编号为2
<?php
// we must never forget to start the session
session_start();
$errorMessage = '';
if (isset($_POST['username']) && isset($_POST['password'])) {
include 'library/connect.php';
$username = $_POST['username'];
$password = $_POST['password'];
// check if the user id and password combination exist in database
$sql = "SELECT role FROM user WHERE username = '$username' AND password = '$password'";
$result = mysql_query($sql) or die('Query failed. ' . mysql_error());
$row = mysql_fetch_array($result);
if (mysql_num_rows($result) == 1 AND $row['role']==2) {
// the user id and …Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,用户可能会得到一个OutOfMemoryError; 现在我想找到一种方法,可以通知用户程序遇到OutOfMemoryError,这样他/她就可以采取相应的行动.(例如,使用更大的堆空间重新启动程序等)
如何"捕获"错误,以便我可以通知用户?
我的问题将使用电子邮件作为示例,但这可能适用于任何事情.
通常在注册新用户之前(包括插入他/她的电子邮件),我检查他/她的电子邮件是否已存在于DB中,如下所示:
$result = mysql_query("SELECT * FROM Users WHERE email = '".mysql_real_escape_string($email)"';");
if(!$result)
{
die(mysql_error());
}
if(mysql_num_rows($result) > 0)
{
die('<p>Email already in DB. <a....>Recover Email</a></p>');
}
else
{
//insert new user data into Users table
}
Run Code Online (Sandbox Code Playgroud)
既然我已经限制了email我的Users表中的字段UNIQUE,那么首先尝试插入是否会更快,如果失败,请检查错误?像这样的东西:
$result = mysql_query(...);//insert new user data into Users table
if(!$result)
{
if(mysql_errno()==$insert_unique_error)
{
$error = '<p>Email already in DB. <a....>Recover Email</a></p>';
}
else
{
$error = mysql_error();
}
die($die_str);
}
Run Code Online (Sandbox Code Playgroud)
问题是我不知道应该是什么$insert_unique_error.这些是我能找到的唯一错误代码:
SQLSTATE值的前两个字符表示错误类: …
我正在寻找以下最有效和最优雅的方式:
该函数将反序列化XML对象.
主要可能的结果是:
如果我这样写,如果文件损坏,读者将不会被关闭.如果我在finally块中写入reader.close(),它会在给它分配值之前给出一个关于使用read的警告.
那么,我该如何解决这个问题?
Public Function DeSerializzaXML(ByVal FileName As String, ByRef tmpObj As Object, ByVal tmpClass As Type) As Boolean
Dim serializer As XmlSerializer
Dim reader As StreamReader
Dim tmpSuccess As Boolean = False
Try
serializer = New XmlSerializer(tmpClass)
reader = New StreamReader(FileName)
tmpObj = serializer.Deserialize(reader)
reader.Close()
tmpSuccess = True
Catch ex As Exception
AggiungiRigaSuFile(ErroriPath, FileName + ", " + ex.Message, Configurazione.DiagnosticaOff, True)
Finally
End Try
Return tmpSuccess
End Function
Run Code Online (Sandbox Code Playgroud) 我的所有功能都是这样的:
short Function()
{
short ret = 0;
ret = FunctionA();
if(ret != 0) return ret;
ret = FunctionB();
if(ret != 0) return ret;
ret = FunctionC();
if(ret != 0) return ret;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来写这个?无需重复
if(ret != 0) return ret;
Run Code Online (Sandbox Code Playgroud)
每时每刻?
error-handling ×10
exception ×2
java ×2
mysql ×2
php ×2
.net ×1
c ×1
c++ ×1
cakephp-2.0 ×1
debugging ×1
flash ×1
insert ×1
ip ×1
oop ×1
performance ×1
python ×1
return-value ×1
save ×1
scope ×1
stack-trace ×1
styles ×1
try-catch ×1
try-except ×1
vb.net ×1