小编use*_*876的帖子

在Python中获取异常详细信息

我必须在同一个循环中打开和写入大约10个不同的文件.例如:

for i in range(0,10):
    try:
        a=5
        file1 = open("file1.txt",'w+')
        file2 = open("file2.txt",'w+')
        #... etc

        print(str(a),file=file1)
        print(str(a)+"hi",file=file2)
        # ... etc
    except: 
        #error handling
Run Code Online (Sandbox Code Playgroud)

现在我想要做的是能够获得特定的异常信息,例如在一般异常中打开/写入的文件.根据我目前的理解,我必须做这样的事情来实现我想要的:

for i in range(0,5):
    a=5
    try:
        file1 = open("file1.txt",'w+')
        print(str(a),file=file1)
    except: 
        #error handling for file1
    try:
        file2 = open("file2.txt",'w+')
        print(str(a)+"hi",file=file2)
    except: 
        #error handling for file2
Run Code Online (Sandbox Code Playgroud)

...当我必须为大约10个不同的文件执行此操作时,哪个会变得非常笨重且没有吸引力.有没有办法从我的第一个例子中获取(例如)一般异常中的文件名信息?基本上,异常可以报告诸如"写入文件1时的错误"而没有尝试/除了专门用于file1操作.

编辑:这是对写入文件的数据的过度简化.str(a)和str(a)+"hi"对实际写入的数据并不是很好的表示; file1可能需要一个硬编码整数,其中file2可能需要一个用多个变量格式化的字符串.将开放/写入过程概括为循环并不会很好地工作.

python error-handling exception python-3.3

18
推荐指数
3
解决办法
4万
查看次数

从对象列表的getter创建值列表

好吧,让我们说我有一个非常简单的课程,例如

public class Baby {
   private String Name = "alf";
   public String getName() {
      return Name;
   }
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道.鉴于Baby的列表,在Java中是否有任何更简单/更酷/更短的方式来创建婴儿名字的阵列/ arraylist而不是简单地循环遍历所有婴儿并将他们的名字添加到新列表中?相当于:

ArrayList<Baby> babies = new ArrayList<Baby>();
/* some code adding a bunch of babies to the arraylist */

ArrayList<String> names = new ArrayList<String>();
for (Baby b : babies) {
  names.add(b.getName());
}
Run Code Online (Sandbox Code Playgroud)

......但更酷 明白我的意思了吗?

java list

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

标签 统计

error-handling ×1

exception ×1

java ×1

list ×1

python ×1

python-3.3 ×1